Jos*_* A. 6 git version-control
对不起,我是Git的新手,很难在Google上找到这些难以理解的问题(至少对我而言)的答案.
说我的名字是乔,我和我的同事鲍勃正在制作一个软件程序.
我们有上游Repo A,我们Repo A在本地机器上有克隆,我们在那里编码,提交和定期推送到同一个分支,比如master.我知道这在技术上并不是最好的方法,但是举个例子.
现在,如果我们都在处理一个文件会发生什么.他尚未推送的 Bob的本地文件包含内容
// awesome program
[some edits by Bob]
Run Code Online (Sandbox Code Playgroud)
我尚未推送的本地文件包含内容
// awesome program
[some edits I made]
Run Code Online (Sandbox Code Playgroud)
远程文件是否正常
// awesome program
[some edits I made]
Run Code Online (Sandbox Code Playgroud)
要么
// awesome program
[some edits Bob made]
Run Code Online (Sandbox Code Playgroud)
或者,如果有办法,我希望它是
// awesome program
[some edits Bob made]
[some edits I made]
Run Code Online (Sandbox Code Playgroud)
对不起的noobishness :(
小智 6
Git会拒绝你的推动.它会告诉你服务器上有新的变化,并让你在推动之前做一个拉动.所以,你最终会得到
// awesome program
[some edits Bob made]
[some edits I made]
Run Code Online (Sandbox Code Playgroud)
在你的本地机器上.然后你就可以把它推到遥控器了.
第一:你不能用常规方式推进,git push因为当你在本地主人身上时你的远程主人已经改变了.所以git建议你用-f选项强制推送.即git push -f,但它不是建议做力推上的共享分支,除非你有一个公平的道理一样interactive rebasing!
第二:通过git的这条消息,你被告知你的远程存储库发生了一些事情,所以你做了一个git status,是的,它告诉你"Your branch and 'origin/master' have diverged, and have 1 and 1 different commit(s) each, respectively.".你应该更新你当地的回购; 所以你正在做一个git pull或在这种情况下更好的命令,git pull --rebase并且令人惊讶!Git也拒绝你的拉,并告诉你在示例文件中有冲突.那是因为你和鲍勃都编辑了相同的文件和相同的行!
最后:查看此链接并解决冲突.你可以保留你的变化或鲍勃或两者.然后提交更改并git push更新您的远程仓库.就是这样!!!