git-it 教程,一些git知识点。/ 如何解决merge conflict/ 如何使用Github Pages./Git术语表

一个git使用教程 git

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

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

 


 

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

git diff:工具

 

Add GitHub username to Gitpost

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

git config --global user.username <USerNamE>

再核查一下:测试

git config --global user.usernamefetch

 


 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>
origin https://github.com/chentianwei411/patchwork.git (fetch)
origin https://github.com/chentianwei411/patchwork.git (push)
upstream https://github.com/jlord/patchwork.git (fetch)
upstream https://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 图形界面工具。
相关文章
相关标签/搜索