Git 在不同的机器上拉取提交重置
Git Pulling commits reset in different machine
我在我的办公室计算机和私人计算机上工作的回购协议中有提交 A、B、C(A 是最新的)。
然后我从我的私人计算机重置提交 A、B 并添加新的提交 D。现在我的私人计算机有提交 D、C。然后我强制推送它们所以我的远程仓库也只显示 D、C。
现在,当我从我的办公室计算机中提取我的存储库时,它有提交 D、A、B、C 和一个新的 'merge conflict' 提交,我在提取存储库时必须这样做?
如何让我的办公室计算机与远程存储库(即 D、C)具有相同的提交?
不得不做
git reset --hard origin/master
在git pull
之后
pull(git pull
)的意思是fetch,然后做第二个命令,一般是merge:也就是git fetch
然后git merge
。所以合并来自第二个 Git 命令 git pull
运行s.
因为您不想要合并,所以不要运行git merge
。这意味着:不要 运行 git pull
. 因为 git pull
实际上只是 two Git命令,运行第一个自己做:git fetch
.
然后,在获得新提交 D
后,您想要执行与您的强制推送和 git reset
所做的相同类型的重置。在这种情况下,这意味着您需要 运行:
git reset --hard origin/master
(或任何 origin/
远程跟踪名称,对应于您当前的分支)。小心 git reset --hard
,它会删除您所做的任何未提交的工作:运行 git status
首先确保您没有任何此类工作,或者愿意丢弃它。
(我建议一般避免使用 git pull
。如果您 做 想要在 git fetch
、运行 之后添加 git merge
那是你自己。但那是一个单独的问题。)
我在我的办公室计算机和私人计算机上工作的回购协议中有提交 A、B、C(A 是最新的)。
然后我从我的私人计算机重置提交 A、B 并添加新的提交 D。现在我的私人计算机有提交 D、C。然后我强制推送它们所以我的远程仓库也只显示 D、C。
现在,当我从我的办公室计算机中提取我的存储库时,它有提交 D、A、B、C 和一个新的 'merge conflict' 提交,我在提取存储库时必须这样做?
如何让我的办公室计算机与远程存储库(即 D、C)具有相同的提交?
不得不做
git reset --hard origin/master
在git pull
pull(git pull
)的意思是fetch,然后做第二个命令,一般是merge:也就是git fetch
然后git merge
。所以合并来自第二个 Git 命令 git pull
运行s.
因为您不想要合并,所以不要运行git merge
。这意味着:不要 运行 git pull
. 因为 git pull
实际上只是 two Git命令,运行第一个自己做:git fetch
.
然后,在获得新提交 D
后,您想要执行与您的强制推送和 git reset
所做的相同类型的重置。在这种情况下,这意味着您需要 运行:
git reset --hard origin/master
(或任何 origin/
远程跟踪名称,对应于您当前的分支)。小心 git reset --hard
,它会删除您所做的任何未提交的工作:运行 git status
首先确保您没有任何此类工作,或者愿意丢弃它。
(我建议一般避免使用 git pull
。如果您 做 想要在 git fetch
、运行 之后添加 git merge
那是你自己。但那是一个单独的问题。)