在git中从一个分支到另一个分支进行更改,我如何在自己的分支上工作

时间:2015-05-29 19:35:48

标签: git github git-branch git-clone git-checkout

我对git有点失落,这是我第一次和其他人一起使用git。

我想要做的是将分支中所做的更改带到我正在工作的分支中,让我们说当我执行git branch --all时,我看到的是:

  master
* c
  remotes/origin/HEAD -> origin/master
  remotes/origin/a
  remotes/origin/master
  remotes/origin/c

所以,我正在分支c上工作,我有一个朋友在分支a做了一些更改,我怎样才能将他的更改带到我的分支?

另一件我不太明白的是我如何在自己的分支上工作,假设我在文件blah.html.erb中修复了一些东西,我想做一个提交并将其上传到我自己的分支,可以这样做吗?

git remote add blah.html.erb origin/c
git commit -m "Some changes"
git push origin origin/c

问候。

1 个答案:

答案 0 :(得分:1)

为了能够访问您朋友的分支,首先需要使用以下命令将它们从远程存储库提取到本地存储库:

git fetch --all

这会从远程存储库中提取本地不存在的任何分支,并将它们添加到您的存储库中。完成此操作后,您所要做的就是将他的分支合并到您的分支中。假设你在你的分支上(如果不只是运行git checkout c),只需运行

git merge a

接受弹出的合并提交。至于“另一件我不太了解的是我如何在自己的分支上工作”,我认为你误解了git的一些非常基本的基础知识,我强烈建议你通读{{3}给自己批判性的知识。基本上,使用git的想法是你有一个本地存储库,它在任何给定时间都有一组数据,可能还有任意数量的远程存储库,它们也包含一组可能与你的不同的数据,具体取决于你的持续时间用任何远程回购同步你的本地仓库。

您应该只运行git remote add xxxx一次;当您想要添加远程存储库(xxxx)以供将来使用时。您的本地存储库已经知道它存在(请参阅<your project root>/.git/config),因此您无需再次运行它。你需要做的是:

  1. 将新文件添加到本地索引:git add blah.h
  2. 将该文件提交到本地存储库:git commit -m "some changes"
  3. 将更新的分支推送到远程存储库:git push origin c
  4. 这有意义吗?如果没有,你真的,真的需要更多地阅读git的绝对基础知识。你已经做出了一个非常好的决定,开始使用git,但听起来你还有一些需要做的事情才能有效地使用它。