Dav*_*ven 9 git github branching-and-merging
我正在尝试在github项目上开始使用git.(我多年来一直在使用CVS,SVN和hg; git很难让我理解).我尽可能地按照说明操作,根本无法使其正常工作.
克隆我的分叉项目:
git clone git@github.com:davidgiven/linux-allwinner.git
Run Code Online (Sandbox Code Playgroud)
按照建议,我添加一个"上游"遥控器,用于跟踪我的分支项目:
git remote add upstream https://github.com/amery/linux-allwinner.git
Run Code Online (Sandbox Code Playgroud)
我从中取出:
git fetch upstream
Run Code Online (Sandbox Code Playgroud)
这一切都很好.但是,自从我分叉项目以来,它已经过了一周左右,上游已经进行了改变.所以我想引入这些变化.我目前在正确的分支--- allwinner-v3.0-android-v2 ---所以我从上游合并到我的分支:
git merge upstream/allwinner-v3.0-android-v2
Run Code Online (Sandbox Code Playgroud)
......我得到了合并冲突.
CONFLICT (add/add): Merge conflict in arch/arm/mach-sun5i/pm/standby/common.h
CONFLICT (add/add): Merge conflict in arch/arm/mach-sun5i/pm/standby/Makefile
CONFLICT (add/add): Merge conflict in arch/arm/mach-sun5i/pm/standby.S
CONFLICT (add/add): Merge conflict in arch/arm/mach-sun5i/pm/Makefile
[etc]
Run Code Online (Sandbox Code Playgroud)
现在,我什么都没检查过; 我还没有开始工作,我的项目完全没有动过,因为我分叉了.因此,不应该有任何冲突.但也有一些; 发生了什么,我该如何解决?
更新:
git show-branch HEAD upstream/allwinner-v3.0-android-v2 显示了这一点,我不得不说我不明白一句话:
! [HEAD] arm: sun3i: add getioaddr macro
! [upstream/allwinner-v3.0-android-v2] arm: sun3i: updated irq handling and machine_desc to 3.0
--
+ [upstream/allwinner-v3.0-android-v2] arm: sun3i: updated irq handling and machine_desc to 3.0
+ [upstream/allwinner-v3.0-android-v2^] arm: sunxi: renable early_printk in all _defconfig except crane's
+ [HEAD] arm: sun3i: add getioaddr macro
+ [HEAD^] arm: sun3i: add dummy machine type
Run Code Online (Sandbox Code Playgroud)
kni*_*ttl 13
可能是,上游改写了历史(改变,修改......) - 他们不应该这样做,但你永远不会知道.
由于您说您没有任何本地更改或提交,因此您应该通过重置分支将存储库恢复到干净状态:
git reset --hard upstream/allwinner-v3.0-android-v2
Run Code Online (Sandbox Code Playgroud)
(这将丢弃任何本地更改并使当前HEAD的提交无法访问!)
以上假设您将(强制)将分支的新重置状态推送到远程存储库,否则当您尝试从中拉出时会再次遇到冲突origin.
git push origin +allwinner-v3.0-android-v2
Run Code Online (Sandbox Code Playgroud)
如果你已经在本地做过承诺,那么你必须在上游分支之上重新设置(或者挑选)你的提交,然后推送到原点.这样,您将以与上游相同的方式重新编写本地历史记录,并在顶部应用您的更改,即:
git rebase --onto upstream/branch \
last-original-upstream-commit-before-yours \
your-branch
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13282 次 |
| 最近记录: |