git fetch拉取他人分支(转)

来源:http://blog.tsnrose.com/2012-04-18-git-fetch.html(感谢作者分享)

有时候我们需要得到其它人的代码仓库,将别人(未push到远程仓库上的)修改与自己的修改进行合并,或者查看别人某个分支下的代码(而不真正切换别人的分支),本文介绍了相关的操作方法。

git remote

git remote用来管理本地工作目录对应的远程代码仓库,在一般的工作目录下,执行git remote结果如下:

> git remote
origin
> git remote -v
origin  [email protected] (fetch)
origin  [email protected] (push)

我们可以使用git remote add命令来增加一个远程仓库,这个远程仓库可以是ssh地址(如上面这种),可以是本地目录,也可以是git协议或者http协议的地址。
例如,我要把liming的仓库作为我的远程仓库之一,可以执行git remote add 来增加仓库,例如:

> git remote add liming /home/liming/repo
> git remote
liming
origin
> git remote -v
liming  /home/liming/repo (fetch)
liming  /home/liming/repo (push)
origin  [email protected] (fetch)
origin  [email protected] (push)

这样就将/home/liming/repo作为我的远程仓库之一了。

相应的,可以使用git remote rm或者git remote rename对远程代码仓库的名称进行修改(本地的,不会影响到对方的目录)

git fetch

git fetch用来得到远程代码仓库中本地没有的内容,git fetch 即可,例如:

> git fetch liming
remote: Counting objects: 20, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 11 (delta 7), reused 4 (delta 2)
Unpacking objects: 100% (11/11), done.
From /home/liming/repo
 * [new branch]      card       -> liming/card
 * [new branch]      master     -> liming/master
 * [new branch]      test1      -> liming/test1
 * [new branch]      ziti       -> liming/ziti

这样正在开发的代码就被抓取到本地了。

git checkout

可以使用git checkout切换到其它人的代码分支,git checkout /,例如:

> git checkout liming/card
Note: checking out ‘liming/card‘.
You are in ‘detached HEAD‘ state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
 git checkout -b new_branch_name
HEAD is now at 20831f6... 自动充值

这样就可以看到已经commit过的代码了。

git checkout -b

checkout到别人的分支之后,处于detached HEAD状态,也就是说,这时候所作的commit都会被丢弃。要在别人代码的基础上进行修改,可以新建一个本地分支,例如:

# (在liming/card分支中)
> git checkout -b newcard
Switched to a new branch ‘newcard‘

这样就建立了一个名为newcard的本地分支

修改gitconfig文件

有了本地分支之后,就可以在分支上修改和commit了,对于别人的改动,可以使用:

# (在newcard分支中)
git fetch liming
git merge liming/master

和本地代码进行合并,但这样每次要运行两条命令。其实平常经常运行的git pull与上面两条命令功能相同,只要在配置文件中设置一下,就可以让git pull帮我们代劳:

在.gitconfig中[branch "newcard"]段(没有的话可以自己加上)增加:

remote = liming
merge = refs/heads/master

如此一来,每次远程更新后,便可以用git pull得到远程的代码。

git push

在本地分支修改并提交后,可以将这些改动提交到远程分支,格式为git push :, src代表本地分支,dst代表远程分支,例如:

$git push liming newcard:card

这样就可以把本地newcard的修改提交到liming下的card分支中。注意:只有在本地已merge远程分支最新代码,且对方不在此分支下才能操作成功。

时间: 2024-07-31 08:56:36

git fetch拉取他人分支(转)的相关文章

【记录】git 拉取远程分支代码,同步到另一个git上

最近有需求从某git 上拉取所有分支代码同步到另一git上,现记录操作步骤,以便日后使用: 1:先克隆其中一个分支代码到本地环境 git clone -b test http://账号:密码@XXX.git 2:查看本地分支 git brach 3:查看远程分支 git branch -r 4:查看远程所有分支  远程分支会用红色表示出来(如果你开了颜色支持的话 git branch -a 5:-a命令并没有每一次都从远程更新仓库信息,我们可以手动更新一下 git fetch origin gi

git拉取远程分支并创建本地分支

本地分支推送至远程 git checkout local_branch git push origin local_branch:remote_branch 一.查看远程分支 使用如下Git命令查看所有远程分支: git branch -r 列出本地分支: git branch 删除本地分支: git branch -D BranchName 其中-D也可以是--delete,如: git branch --delete BranchName  删除本地的远程分支: git branch -r

Git拉取远程分支命令

如果我们想从Git仓库中拉取一个分支到本地,此处假如远程分支为develop,本地要创建的分支为dev,可以使用以下命令: git init    //初始化本地Git仓库 git remote add origin https://xxx.git  //将本地仓库和远程仓库相关联 git fetch origin develop git checkout -b dev origin/develop //在本地创建分支dev,并将远程分支develop的信息同步到本地分支dev 这样我们就拉取了

git 拉取远程分支报错(fatal: '' is not a commit and a branch '' cannot be created from it)

问题描述从远程git上拉取某一个分支,然后报错,拉取不了这个分支. 拉取分支的命令: git checkout -b xxx-static-19 origin/xxx-static-19 其中xxx-static-19是分支名. 报错 fatal: 'origin/xxx-static-19' is not a commit and a branch 'xxx-static-19' cannot be created from it 解决重新拉取数据,git pull ,然后再切回分支 git

git拉取远程分支并切换到该分支

整理了五种方法,我常用最后一种,这五种方法(除了第4中已经写了fetch的步骤)执行前都需要执行git fetch来同步远程仓库 (1)git checkout -b 本地分支名 origin/远程分支名 (2)git checkout --track origin/远程分支名 (这种写法是上面的简化版,效果完全一样) (3)git checkout -t origin/远程分支名(这种写法是2的简化版) (4)fetch指定的一个分支:git fetch [repo] [remote_bran

拉取远程分支

https://blog.csdn.net/carfge/article/details/79691360 开始拉代码的操作链接 git branch -r 查看远程所有分支 git fetch origin 远程分支名x:本地分支名x 会创建本地分支,但是和远程分支没有映射关系 git branch 查看本地分支名 git checkout 分支名 切换当前分支 git branch -u origin 与远程分支建立映射关系 再git pull拉取远程代码就可以了 原文地址:https://

git clone新项目后如何拉取其他分支代码到本地

1.git clone [email protected]:xxx/xxx.git 2.git fetch origin dev    命令来把远程dev分支拉到本地 3.checkout -b dev origin/dev   在本地创建分支dev并切换到该分支 4.git pull origin dev 就可以把远程dev分支上的内容都拉取到本地了 注:当本地代码是dev分支时,需要先 git pull origin dev 更新远程分支代码到本地,然后再git pull (即拉取远程mas

git从远程仓库gitLab上拉取指定分支到本地仓库

https://blog.csdn.net/qq_40973353/article/details/80682891 例如:将gitLab 上的dev分支拉取到本地 1>与远程仓库建立连接:git remote add origin XXXXX.git 2>使用git branch 查看本地是否具有dev分支 3>如果没有 git fetch origin dev 4>git checkout -b dev origin/dev在本地创建分支dev并切换到该分支 5>git

git拉取远程分支到本地分支或者创建本地新分支

git fetch origin branchname:branchname 可以把远程某各分支拉去到本地的branchname下,如果没有branchname,则会在本地新建branchname git checkout origin/remoteName -b localName 获取远程分支remoteName 到本地新分支localName,并跳到localName分支