git使用的一些总结

git fetch

其中有FETCH_HEAD的概念,其指向的是某个branch在服务器的最新状态;对于每个执行了fetch的项目,都会在本地仓库中存在一个FETCH_HEAD列表,保存在.git/FETCH_HEAD文件夹中。


git fetch origin 执行了两个关键操作:

1.创建并更新origin远程分支的本地分支

2.设定当前分支的FETCH_HEAD为远程服务器的master分支;


git fetch origin branch1

即为设定当前分支FETCH_HEAD为远程服务器的branch1分支;

这个操作是git pull origin branch1的第一步,而对应的pull操作,并不会在本地创建新的branch


git fetch origin branch1:branch2

使用远程的branch1分支在本地创建branch2分支;

如果本地不存在branch2在则自动创建branch2;

如果本地存在branch2,且是“fast forward”,则自动合并两个分支;


git fetch origin:branch2

即从远程origin的master分支在本地创建branch2分支,其它同上


git fetch 和git pull 的差别

git fetch 相当于是从远程获取最新到本地,不会自动merge,如下指令:

git fetch orgin master #将远程仓库的master分支下载到本地当前branch中

git log -p master  ..origin/master #比较本地的master分支和origin/master分支的差别

git merge origin/master #进行合并

也可以用以下指令:

git fetch origin master:tmp #从远程仓库master分支获取最新,在本地建立tmp分支

git diff tmp

git merge tmp

git pull 相当于从远程获取最新版本并merge到本地

在实际使用中,git fetch更安全一些



你可能感兴趣的:(git使用的一些总结)