2017-04-12 389 views
0

虽然我对'svn'已经有了一定的经验,但对于'git'我还是比较陌生,但是我从来没有必要在任何系统中使用分支到现在。git:如何用'dev'分支中的文件更新'master'分支?

我的工作我的第一个(小)合作项目等方面都取得了dev分支,一直在我的dev分支开发/测试的变化(并让他们在回购上传到dev分支) 。我现在的代码版本现在已经准备好成为新版本master(在修改下一个dev之前)。

我看到另一个合作者已经向master分支添加了一个新文件(它不影响我正在处理的文件)(我之前并不知道这个分支,因为我在本地dev分支中) 。

我现在需要在master分支从dev分支版本的“MYFILE”更新的“MYFILE”的版本,而不会影响“theirfile”将添加的其他开发人员(并且,我想,还理想地将“theirfile”下载到我的master分支的本地副本中。

我知道我需要在适当的时候处理这​​个问题,但在回购的master分支中出现这个额外的文件可能会让事情变得更加复杂一些。

由于我对'git'还不太熟悉,尤其是因为我不想无意中弄乱我们的代码回购,有人请告知我需要做什么来相应地更新回购?

+2

你想要什么叫做“合并”。您想签出master(您要合并的分支),然后合并develop(您想合并的分支)。这将把开发分支的所有变化带入主控,这样主控也包含这些更改。后来,当你对git更熟悉的时候,你可能想要结账rebasing,但现在我建议你坚持合并。 –

+0

如果您可以跟踪组成该文件历史记录的修订版,则可以选择它们(假设这些修订版中没有涉及其他文件)。你可以尝试的另一件事是“检出”提供其他分支的文件('''git checkout branch - '''),git会将它“添加”到你的索引中将作为您当前分支上的新文件承担,与其他分支上的其他修订无关)。 – eftshift0

+0

'git pull origin master' - 它会自动合并 –

回答

2

你想合并到你的主分支与该文件。 根据您使用的git客户端,您可能需要提交合并请求,以便其他团队可以验证此更改。

如果这是您编辑的唯一文件,或者您确信'dev'分支中的所有文件与主文件中相应文件的版本相同或更新,则使用以下命令。

git checkout master 
git merge dev 
git add '{your updated files}' 
git commit 
git push 
+0

非常感谢。我能否在实际尝试之前检查一下,我是否有希望理解它的作用(帮助我理解git)? 1。(魔术发生?) 3.将指定的文件添加到我的'master'副本中 4.在本地提交这些更改 5.将这些更改提交到“主”分支并从其上游下载任何更改 回购。 以上是一个合理的理解(你能帮我理解“魔术”部分)吗? – dave559

+0

是的,这是绝对正确的。为防万一,在切换分支时,您可能总想执行git pull。我也是一个合理的新手,看起来确保你不会犯任何严重错误的最​​好命令是git pull和git push。每当你想提交一个提交时,我都会建议提交(如果你不是在分支上工作的唯一人员)。完成本地提交后,立即将其推送到服务器。 –