我是GIT新手,所以我有一些关于git命令,合并等的基本问题。 我只是对代码做了一些更改,我做了一个git提交,然后我尝试执行以下命令:
git push origin test:test
(这个语法是什么意思?我知道我正在使用名为test
)
由于其他人在我推动之前做了更改,因此出现了错误。 所以错误说我需要做的是让代码更改并合并。
我该怎么做才能看到我所在地区与其他人改变了什么之间的差异?有git diff但我应该使用语法吗?
我想将我的更改与他的更改合并。我怎么做?
答案 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的评论......