zoukankan      html  css  js  c++  java
  • git-it 教程,一些git知识点。/ 如何解决merge conflict/ 如何使用Github Pages./Git术语表

    一个git使用教程 

    https://:.com/jlord/git-it-electron#what-to-install 

    一个在线Github的功能教学:https://lab.github.com/ 


    看刚才改变的文件的区别。

    git diff:

    Add GitHub username to Git

    添加你的用户名到你的Git配置: (一次性的,所有仓库都是这个名字)

    git config --global user.username <USerNamE>

    再核查一下:

    git config --global user.username


     git remote add origin https://github.com/chentianwei411/hello-world.git

     git push -u origin master

    把master分支推到远程仓库origin。

    -u的意思是设置upstream ❓不明白。

    提示:

    设置URL给一个远程仓库, 改变一个远程仓库url

    git remote set-url <remoteName> <URL> 

    拉:

    git pull <remoteName> <branchName>

    推:

    git push <remoteName> <branch> 

    增加一个远程仓库:

    git remote add <remoteName> <URL> 

    本地和远程断开:

    git remote remove <name>  #默认远程仓库名字是origin


    Fork and Clones

    fork到你的GitHub账号,然后clone到你的电脑,你的电脑可以链接2个远程仓库,自己的和fork别人的仓库。

    可以从别人的仓库pull变化的代码。也可以push request,请求合并。

    1. fork
    2. git clone <自己的url>
    3. 链接到原始的仓库。别人的那个仓库。git remote add upstream <别人的仓库URL>
    originhttps://github.com/chentianwei411/patchwork.git (fetch)
    originhttps://github.com/chentianwei411/patchwork.git (push)
    upstreamhttps://github.com/jlord/patchwork.git (fetch)
    upstreamhttps://github.com/jlord/patchwork.git (push)

    Branch 

    接着上面链接了远程仓库后,master变成了gh-pages❕

    输入:

    patchwork ⮀ ⭠ gh-pages  git status

    On branch gh-pages
    Your branch is up-to-date with 'origin/gh-pages'.

    Github将自动服务和静态主页网页在branch中,叫做gh-pages。这个免费的服务是GitHub Pages。既然你forked创建了一个网页,它的主要branch是gh-pages,代替了master。

    改一个分支的name:

    git branch -m <newBranchName> 

    上传一个变动:

    git push origin add-chentianwei411 


    创建一个pull request

    你做了一些改动,push到fork的app创建人,并在它的Github上创建一个pull request。对方会选择是否pull. 当被pull后,在本地可以合并,并删除旧分支,还可以删除远程的旧分支。

    git merge <branchName>

    git branch -d <dd>

    git push <remoteName> --delete <branchName> 

    Pull form Upstream 

     最后,因为original 变化了。pull从original upstream

    git pull upstream gh-pages 

    在http://jlord.us/patchwork/ 可以看到我的名字chentianwei411


     https://help.github.com/articles/github-glossary/#repository

    GitHub术语表Glossary

    Blame:

    描述一个文件中国年每一行最后的一次变更,包括修改,作者,时间。用于跟踪记录一个功能何时增加的,或者哪次提交导致了一个bug。

    Diff

    在两个commit中的不同,变化。一般用于描述最后移除提交后,增加或移除的代码。

    Fetch

    从最新的远程仓库下载变化但没有merging them in。

    Issue

    是和这个仓库相关的被建议的改进,任务,或者问题。Issue 可以被任何人创建(仅公共仓库), 可以被仓库的合作者管理。每个Issue都包括它自己的讨论论坛,可以被标记和分配给一个user。

    Pull request

    are proposed changes to a repository submitted by a user。

    下拉请求是提议的变化。它由一个使用者提交到一个仓库。被仓库的合作者接受或者拒绝。和Issue一样,Pull request有自己的论坛。

    SSH key

    在一个在线服务上识别你自己的方法,使用编码的信息。

    Upstream

    当谈论一个分支或一个fork, 在原始仓库中的主分支常常被认为是upstream上游。因为这里(主分支)是其他变化进入的主要位置。 The branch/fork 你正工作的地方则称为downstream下游。

    user

    一个个人的GitHub账号。


      

    Git Page

    特别的格式要求:

    • _config.yml 是自动生成的关于theme的YAML格式文件
    • 你需要一个文件使用YY-MM-DD-title.md的格式
    • JeKyll使用标记语法。
    • 具体要求都在这里:https://jekyllrb.com/docs/posts/


     https://lab.github.com/courses/managing-merge-conflicts

    学习merge conflicts的解决方法

    可以在github.com user interface上解决,也可以在command line或其他本地的tools上解决。

    How merge conflicts happen

    版本控制让你制造不断增加的代码或文件,保存到历史记录中。 Git操作就像一个线性账单。

    在GitHub Flow中,首先,基于base branch创建新的分支。然后,你会增加多个提交commit,这些提交只存在于你新建的当前分支中。最后, 你打开一个pull request提议,让你增加的commit合并到base branch中去,合并这个分支并删除这个分支。

    版本冲突就发生在当base branch 被某人改变了,而你使用的是没变之前的base branch。这通常发生在你合并分支之前,已经有他人把他们的分支merge到了base branch.


    解决一个简单的冲突:

    2个user在一个repository中工作,他们都创建了分支,都在改同一个文件后,打开了pull requests。一个人的请求被merge到master分支,这不会发生问题,但另一个人的pull request则会被拒绝,显示conflict.

    1. 点击“Resolve conflicts”按钮,位于页面底部的“This branch has conflicts that must be resolved”框。
    2. 进入新页面,看到红色高亮的部分: <<<<<< update-config和>>>>>>>>master
    3. 删除主分支上的不同代码,位于========下面,>>>>>>master上面的代码。
    4. 然后,移除merge conflict markers。
      <<<<<<< update-config
      =======
      >>>>>>> master
    5.  点击右上角的“Mark as resolved”,会出现 ✅Resolved all conflicts
    6.  并原位置出现Commit merge 按钮,点击它。回到Conversation讨论版。

    ⚠️,有时,解决一个合并冲突的最好办法是增加两个分支之外的内容代码,甚至联合所有来自不同分支的变化代码。因此Git需要人为的检查代码并作出适当的调整。

    提交合并后发生了什么?

    在一个新的merge commit记录中储存这个冲突的解决办法。这样你和你的团队可以继续工作。

    另类的解决冲突的办法:

    为了解决一个冲突, GitHub可以使用一个叫做reverse merge的办法。即:把master合并到update-config分支上。而不是把冲突分支合并到master上。

    这种方法可以让你在分支上测试这个代码,保证✅后,再合并到master。尤其是在master已经处于产品阶段,必须让它无bug的情况。


    Resolve conflicts in the Advanced Conflicts pull request

    • 总共2个文件,三个冲突。
    • 其中,一个文件中有2处冲突。
    • 合并冲突标记残余,例如<<<<<。如果你的colleagues在本地解决了合并冲突,但忘记移除标记。

    方法和上一节一样。


    More complicated merge conflicts:

    需要在command line上解决。你可能遇到:

    • 修改一个已经删除的文件,在另一个分支上。
    • 两个分支上,明显的文件改变,以至于Git对待它们为不同的文件。
    • GUI resolution tools 图形界面工具。
  • 相关阅读:
    STM8S TIM4库函数应用
    几种更新(Update语句)查询的方法
    CentOS 配置httpd使局域网能够正常訪问
    天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能
    Numeral.js 是一个用于格式化和数字四则运算的js 库
    SVN高速新手教程
    我的Android开发相关文章
    cocos2d-x游戏开发实战原创视频讲座系列1之2048游戏开发
    运动检测(前景检测)之(一)ViBe
    linux概念之分区与文件系统
  • 原文地址:https://www.cnblogs.com/chentianwei/p/9278363.html
Copyright © 2011-2022 走看看