远程仓库
添加远程库
首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:
github-create-repo-1
在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
github-create-repo-2
目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:
git remote add origin git@github.com:自己的Github账户名/learngit.git
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
git push -u origin master
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
从现在起,只要本地作了提交,就可以通过命令:
git push origin master
从远程库克隆到本地
首先登录GitHub网站,创建一个新的仓库,注意勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个README.md文件。创建完毕后,可以看到README.md文件。
然后使用命令
git clone git@github.com:SuiXIn-7/gitskills.git
然后进入gitskikks目录查看
分支管理
创建与合并分支
首先我们创建 dev 分支并切换到 dev 分支上去
git checkout -b dev
这一条命令的作用相当于下面两条命令
git branch dev
git checkout dev
使用
git branch
查看当前分支
在README.md添加新内容
Creating a new branch is quick.
然后进行提交
切换到master分支上,然后查看README.md的内容
发现并没有发生改变,因为那个提交是在dev分支上,而master分支此刻的提交点并没有变。
现在使用命令
git merge dev
将dev分支合并到master分支上,然后查看README.md的内容
合并完成后就可以放心的删除dev分支了
git branch -d dev
小结
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
解决冲突
创建分支feature1
git checkout -b feature1
在分支feature1下修改文件README.md的内容,添加一行
Creating a branch is quick and simple.
然后进行提交
git add README.md
git commit -m “and simple”
切换到master分支下
git checkout master
然后对README.md进行修改,最后一行改为
Creating a branch is quick & simple.
然后进行提交
git add README.md
git commit -m “& simple”
开始尝试合并两个分支
git merge feature1
发现冲突
修改后保存
Creating a branch is quick and simple.
然后再次进行提交
git add README.md
git commit -m “conflict fixed”
冲突就解决了
最后,删除feature1分支:
git branch -d feature1
小结
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph命令可以看到分支合并图。