学习Git和分支,但已经是最新的

时间:2016-02-11 10:28:01

标签: git github

在看了Git之后,我试着理解实践中的分支是如何工作的。

当我尝试将更改从一个分支合并到主分支时,我的终端将返回一条消息,指出主分支已经是最新的。当我查看Github时,它仍然显示旧代码,我也没有看到我刚刚执行的分支:

git branch {branchnamehere}

命令。

任何人都可以解释我应该如何正确运行我的命令以了解分支是如何工作的?我有什么不正确的做法吗?

此pastebin显示我尝试执行的内容:Pastebin here

如果我的问题中有任何一条遗漏了您需要知道的内容,请告诉我,我会编辑问题。

编辑:所以基本上当您(例如)主分支机构进行更改时,您仍然希望能够运行:

git pull

git fetch

如果可以改变,

git merge

(以上部分仅用于从远程存储库中检索文件并将其与本地存储库合并)

git add -A
git commit -m "commitmessage goes here, make it a clear one"
git push

之后,所有内容都应该在远程存储库中正确显示。如果你想创建一个新的分支,你想运行:

git checkout newbranch

或者如果它不存在(还):

git checkout -b newbranch
git push

因此,您将该分支推送到远程存储库而不是主存储库,只需确保在推送之前检出所需的分支。这是我从下面的答案中学到的,多亏了你!

3 个答案:

答案 0 :(得分:3)

有一个非常酷的游戏,它将教你所有关于分支,樱桃选择还原等等。

http://pcottle.github.io/learnGitBranching/

  

有兴趣学习Git吗?

     

嗯,你来对了地方! "学习Git分支"是在网络上学习Git最直观,最互动的方式;您将受到令人兴奋的关卡的挑战,逐步展示强大的功能,甚至可能在此过程中获得一些乐趣。

如何合并更改?

  

当我尝试将更改从一个分支合并到主分支

有几个选择:

# grab the latest code from the server   
git fetch --all --prune

# checkout the desired branch if you're not already using it 
git checkout <branch>
# merge the 2 branches
git merge origin/master

# ----
# use the pull command which does fetch+merge
git checkout <branch>
git pull origin/master

答案 1 :(得分:1)

您已尝试将主服务器合并到您的分支机构中。因为你可能已经从master中创建了分支,并且从那时起master没有更新你就得到了这个消息。

为了将您的更改合并回主人,您应该(在将更改提交到您的分支后):

git checkout master 
git merge <yourbranch>

这是将更改合并回主分支的最明显方法。

现在所有这些东西都发生在你的机器本地,它是git和集中式源控制系统(如SVN)之间的主要区别。

因此,即使您将更改合并到master,也不会在github上看到任何内容。

如果您需要将更改上游推送到github,您应该:

git push

希望这有帮助

答案 2 :(得分:1)

当您输入merge命令时,您仍然在分支companyinfo上,这意味着您正在将master与companyinfo合并。由于您创建了companyinfo分支,因此您的companyinfo是最新的,因此您没有更改主分支中的任何内容。 您需要首先确保您位于主分支上,因为git merge命令会合并到当前分支中。    git checkout master Checkout将切换您的分支。 然后从master中你合并了companyinfo中的更改    git merge companyinfo