git学习(4)远程库和分支管理
git学习(4)远程库和分支管理
1.1建立本地git库和远程库联系
我使用的是GitHub上的库,首先在GitHub上新建一个库,在建立与远程库的联系之前需要建立ssh key。建立ssh key可以参考廖老师的博客
$ git remote add origin git@github.com:keithmorning/studygit.git
上面的格式是$ git remote add 远程库名称 git地址:gitHub账户名/远程git名称
下一步将本地库推送到远程库
$ git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (19/19), 1.47 KiB | 0 bytes/s, done.
Total 19 (delta 4), reused 0 (delta 0)
To git@github.com:keithmorning/gitstudy.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
由于远程库是空的,我们第一次推送的时候,添加-u参数,可以吧本地的master和远程的master分支关联起来
以后再提交的时候使用
$ git push origin master
就可以了
1.2从远程库克隆
先在gitHub上建立一个studygit的库,在初始化的时候选择initial with a readme.md,用来克隆的时候查看,命令git clone 地址
$ git clone git@github.com:keithmorning/studygit.git
Cloning into 'studygit'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
Checking connectivity... done.
fengxideMac:documents fengxi$ cd studygit
fengxideMac:studygit fengxi$ ls
README.md
fengxideMac:studygit fengxi$ cat readme.md
# studygit
from remove study git
fengxideMac:studygit fengxi$
1.3总结
git从本地提交到远程版本库的时候,首先使用git remote add 远程库名+地址
,然后使用git push+地址
命令,如果是第一次提交需要建立本地分支和远程分支的联系git push -u +地址
。
从远程版本库在本地建立克隆库使用命令git clone +地址
2分支管理
2.1分支的概念
先放上廖老师的经典图片
如果我们只有一个分支,那么这个分支的随着我们的提交是
--->A(master)--->B(master)---->C(master)
HEAD指向C,即当前分支
我们通过git checkout -b newBranch
,新建一个分支变成这样的,并让指针指向新分支
--->A(master)--->B(master)---->C(master)
---->D(newBranch)<HEAD>
在新分支中做文件修改后,添加并提交。完成后切换master,然后合并分支,使用命令 merge,指针指向master
--->A(master)--->B(master)---->C(master)----D(newBranch,master<HEAD>)
2.2命令实现
$ git checkout -b newBranch
Switched to a new branch 'newBranch'
$ git add readme.txt
$ git commit -m "new branch"
[newBranch 86c291c] new branch
1 file changed, 1 insertion(+)
$ git checkout master
Switched to branch 'master'
$ git merge newBranch
Updating bb84d1d..86c291c
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
删除newBransh分支
--->A(master)--->B(master)---->C(master)----D(master<HEAD>)
$git branch -d newBranch
Deleted branch newBranch (was 86c291c).
2.3总结
命令 | 介绍 |
---|---|
git branch |
查看分支 |
git branch <name> |
创建分支 |
git checkout <name> |
切换分支 |
git checkout -b <name> |
创建并切换分支 |
git merge <name> |
合并某一分支到当前分支 |
git branch -d <name> |
删除某一分支 |
作者:KeithMorning
出处:http://www.cnblogs.com/keithmoring/
关于作者:欢迎转载,且在文章页面明显位置给出原文链接
如有问题,可以通过keith@keithmorning.com 联系我,非常感谢。