如何合并我的git变化?

时间:2013-04-19 00:29:50

标签: git

我是GIT新手,所以我有一些关于git命令,合并等的基本问题。 我只是对代码做了一些更改,我做了一个git提交,然后我尝试执行以下命令:

git push origin test:test 

(这个语法是什么意思?我知道我正在使用名为test

的分支

由于其他人在我推动之前做了更改,因此出现了错误。 所以错误说我需要做的是让代码更改并合并。

  1. 我该怎么做才能看到我所在地区与其他人改变了什么之间的差异?有git diff但我应该使用语法吗?

  2. 我想将我的更改与他的更改合并。我怎么做?

3 个答案:

答案 0 :(得分:1)

您需要git pull origin test:test来获取其他开发人员所做的更改并将其合并到您的工作目录中。解决任何冲突并提交后,您就可以推送。

git push origin test:test表示您将在分支test(左侧test)上的本地存储库(克隆)中所做的更改复制回原始存储库(源)您在分支test(右侧test)上进行了克隆。

严格地说,如果本地和原点中的分支名称相同,那么写git push origin test就足够了。

答案 1 :(得分:1)

要查看您拥有的内容与其他人所做的事情之间的变化:

git diff origin/test

如果你在,你不需要更新你的遥控器,但你需要git fetch来确保你的遥控状态更新。

您需要做的只是git pull以获取更新的更新。

我建议也这样做git pull --rebase origin test:test --rebase选项只会在原点上的更改后添加您的提交。它将有助于保持历史清洁,否则您将看到您的分支的合并提交本身。但这取决于你。

答案 2 :(得分:1)

  

git push origin test:test

这会将您对名为test的本地分支的更改推送到名为test的远程分支。 test:test部分是<refspec>的(可选)git push选项。

<refspec>格式为<src>:<dst>。您使用它的方式是从名为test的本地分支推送到也称为test的远程分支。名为test 的分支必须存在于名为origin的远程

对于问题1,您想要获取更改(但不要将它们与您的工作文件合并)然后diff,do;

git fetch origin test:test
git diff ..origin  

注意我只包含refspec选项,因为您在推送示例中使用了它 - 可能没有必要 - 默认情况下,git fetch应该在原点上查找带有已签出名称的分支分支......但是我离题了......

对于问题2,您希望将分支原点(在获取后,与远程原点最新)合并到工作副本中;

git merge origin

+1 Felix Fling关于pro git book的评论......