良好的git流程,可在家中和办公室交替工作

Aub*_*bin 6 git

我一半时间在家里工作,一半时间在办公室工作。每个任务必须完成一个专门的,独立的分支,并在同行评审后合并。

我们的项目由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)

我的错误在哪里,如何在不冲突的情况下将两个本地存储库中的代码推入/拉出服务器?

Dog*_*her 5

我有一个非常相似的设置,并且从来没有合并冲突:本质上是按照您的方式做,但是我从来不rebase以任何方式使用,直到最后可能会成为合并的一部分。

具体来说:

  • commitpush频繁,而我的工作,使用origin的备份工具。
  • 我可以轻松地切换到另一台计算机,只需pull/fetch对它执行默认的快速转发,然后再在那里工作即可。
  • 最后,在PR中检查了代码之后,我将根据项目的样式执行某种合并或变基或压缩/合并。

我知道这不是首选的“专家”工作方式,但是它有两个很棒的好处:

  1. 我在多台开发计算机之间切换(这里是台式机,那里是笔记本电脑,还是那里有两台……)。只是git pull我离开了...
  2. 我从来没有冲突。


mia*_*t17 0

当您在多个位置将工作分支变基为 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)

这样,您就可以确定已推送本地删除的所有内容。下次您回到同一台计算机时,您将不会遇到本地分支具有不同基本提交的问题。