我一半时间在家里工作,一半时间在办公室工作。每个任务必须完成一个专门的,独立的分支,并在同行评审后合并。
我们的项目由Bitbucket支持,我们也使用Jira和Jenkins。
我仅使用一个远程存储库和两个本地存储库。
我有一个反复出现的问题:我(@home)和我(@agency)之间发生了一些冲突...
这是我的过程:
星期一,在办公室的一个由master衍生的分支“ JamesBond007”中:
git add --all
git commit [--amend]
git push [-f] origin remote/JamesBond007
Run Code Online (Sandbox Code Playgroud)
周二在家:
git checkout master
git pull
git checkout JamesBond007
git pull --rebase origin master
Run Code Online (Sandbox Code Playgroud)
周三在办公室:
git checkout master
git pull
git checkout JamesBond007
git pull --rebase origin master **<-- conflict: git mergetool command needed!!!**
Run Code Online (Sandbox Code Playgroud)
我的解决方法:
rm -fr repo
git clone ssh:repos-url
Run Code Online (Sandbox Code Playgroud)
我的错误在哪里,如何在不冲突的情况下将两个本地存储库中的代码推入/拉出服务器?
我有一个非常相似的设置,并且从来没有合并冲突:本质上是按照您的方式做,但是我从来不rebase以任何方式使用,直到最后可能会成为合并的一部分。
具体来说:
commit和push频繁,而我的工作,使用origin的备份工具。pull/fetch对它执行默认的快速转发,然后再在那里工作即可。我知道这不是首选的“专家”工作方式,但是它有两个很棒的好处:
git pull我离开了...当您在多个位置将工作分支变基为 master 时,就会出现问题。
每项任务必须分成专门的、分离的、分支的,经过同行评审后合并。
有多种方法可以使其发挥作用(取决于您对 git 的熟悉程度)。基于此,我假设您必须重新调整提交日志的基础。
我将建议对您的工作流程进行一个简单的更改:每天结束时,始终推送origin并删除您的本地分支。
# Assuming you're on JamesBond007 local branch
git push [-f] origin remote/JamesBond007
git checkout master
git branch -d JamesBond007
Run Code Online (Sandbox Code Playgroud)
这样,您就可以确定已推送本地删除的所有内容。下次您回到同一台计算机时,您将不会遇到本地分支具有不同基本提交的问题。
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |