1
forgcode 2016-12-19 23:44:21 +08:00
checkout 一下放弃修改!
|
2
ioiioi OP 嗯,我用 git reset --hard HEAD^回退到上一个 commit 之前的状态,把 git rm file.txt 给找回来了。接着我又用 git pull origin master ,出现如下错误:
``` .... Unmerged paths: (use "git add <file>..." to mark resolution) both modified: _sass/_layout.scss both modified: css/main.scss both modified: index.html ``` 我现在的问题是,我想用远端仓库的文件,覆盖掉本地的这三个文件。该如何操作? @forgcode |
3
entimm 2016-12-20 00:27:41 +08:00 via Android
git checkout origin/master --file1 file2 file3
|
4
SoloCompany 2016-12-20 01:46:47 +08:00 1
显然你的信息存在误导的地方
假如你的信息是正确的,版本的衍生过程是 家里: A0 - A1 (edit file.txt) 公司: A0 - A2 (edit file.txt) repo: A0 - A2 (edit file.txt) 如果是正确的话, git reset --hard HEAD^ 就回到了 A0 这个点, pull 不会有任何冲突 肯定是你做了不止一个提交才会有这种情况 如果你确定本地所有变更都是无用的,可以直接放弃所有 git fetch origin git backup # 为防止你做错事情,先备份一下 git checkout master # 回到 master git reset --hard origin/master |
5
SoloCompany 2016-12-20 01:47:17 +08:00
居然手快打错了
git backup -> git branch backup |
6
ioiioi OP @SoloCompany
我昨天直接修改了那 3 个文件,然后 git commit , git pull 就解决了前面的问题。我现在还有另外一个问题: 家里: A0 - A1 (edit file1.txt) 公司: A0 - A2 (edit file2.txt) repo: A2 假设公司衍生了 A2 ,并 push 到 repo ,但是这个时候,家里并不知道,仍然在 A0 的基础上衍生出 A1 ,并且做了 git add , git commit ,只是 git push origin master 出现错误,这个时候该怎么解决冲突? |
7
SoloCompany 2016-12-21 10:34:00 +08:00
@ioiioi 如果你不希望出现菱形合并,那么
git reset A0 git stash git pull git stash pop 然后提交你的变更就好了 第一个 reset 命令不会丢失任何本地变更,也不会丢失 A1 的变更 相反 A1 变更都回到了本地 为避免 pull 发生冲突, stash 一下是比较安全的做法 |
8
ioiioi OP @SoloCompany 谢谢!
我再学习学习 git |