单分支 git 的冲突问题


一个人开发的项目 ,所以只用了 master 分支。使用中会经常有在家里的电脑和公司电脑切换使用的场景,理论上只要在电脑上开始修改代码前 pull 代码,结束修改后 push 代码,就不会出现问题。但人总有犯错的时候,有时候难免忘记做某个操作,比如:在一台电脑上修改了并 push ,切换电脑后忘记 pull 就开始了修改代码,这时候提交代码就会出现冲突了。

解决办法:

一、本地修改没有 commit
  1. 希望保存本地改动并拉下最新服务器代码,手动merge

    • 1).保留服务器上的修改
      git stash
      -- 将当前的Git栈信息打印出来
      git stash list

      stash@{0} 就是刚才保存的标记
      
    • 2).暂存了本地修改之后,pull 远端代码
      git pull

    • 3).还原暂存的内容
      git stash pop stash@{0}
      系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突

    • 4).解决文件中冲突的的部分
      打开冲突的文件

      • Updated upstream 和==========之间的内容就是pull下来的内容
      • ==========和stashed changes之间的内容就是本地修改的内容

      这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容,直接编辑冲突了的文件(test.txt),把冲突标记删掉,把冲突解决正确

    • (5) 删除stash
      -- 清除0编号的stash
      git stash drop stash@{0}
      -- 清除所有stash
      git stash clear

    • (6)提交aa/a.txt的修改
      git add aa/a.txt

  2. 如果希望服务器上版本完全覆盖本地修改,使用如下命令回退并更新 
    git reset --hard
    git pull

二、本地修改已经 commit ,push 的时候提示错误
mymac:~ root$ git push
To username@github.com:****/test.git
 ! [rejected]        master -> master (fetch first) 
 error: failed to push some refs to 'git@git.****.com:****/djangoProject.git'
 Updates were rejected because the remote contains work that you do not have locally. This is usually caused by another repository pushing to the same ref. You may want to first integrate the remote changes (e.g., 'git pull ...') before pushing again.

提示我们要先执行 git pull, 执行 pull 后可能出现两种情况:
· [1] - 没有冲突,此时 git 会自动帮我们合并代码 ,并显示:

Merge made by the 'recursive' strategy.
 testDir/index.css | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

没有冲突并合并成功,只需再次 push 即可。

· [2] - 有冲突,此时 git 会提示冲突的文件:

CONFLICT (content): Merge conflict in testDir/index.css
Automatic merge failed; fix conflicts and then commit the result.

git 自动合并代码失败,因为此时同一处代码有不同的版本,需要用户手动merge 。可以根据提示的冲突文件信息去处理冲突的文件,需要看更详细的信息可以使用 git status

mymac:~ root$ git status
On branch master
Your branch and 'origin/master' have diverged,and have 1 and 7 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)
You have unmerged paths.
  (fix conflicts and run "git commit")

Changes to be committed:

    modified:   dssWebPortal/dssTools.py
    modified:   html/testDir/main.js
    modified:   html/testDir/netHelper.js
    modified:   html/testDir/alert.js
    modified:   html/testDir/index.html
    deleted:    html/testDir/data.json
    modified:   
    ....

Unmerged paths:
  (use "git add <file>..." to mark resolution)

    both modified:   testDir/index.css

Unmerged paths: both modified: 我们需要解决冲突的文件
Changes to be committed: modified: 在别处被修改了但是没有造成冲突的文件

手动修改冲突的文件,修改完后再用git status查看状态,直到both modified下面没有文件,这时就可以像平时一样使用 git 命令了:
git add .
git commit -m 'fix conflicts'
git push

三、 回滚代码到某次记录

这种操作会删掉本地指定记录后面的全部修改,使用前最好做好备份!!!

显示提交的log
git log
-- 也可以指定查看的个数
git log -3

回退命令:
-- 回退到上个版本
$ git reset --hard HEAD^
-- 回退到前3次提交之前,以此类推,回退到n次提交之前
$ git reset --hard HEAD~3
-- *退到/进到 指定commit的sha码,sha码通过上面的 log 命令获取
$ git reset --hard commit_id

强推到远程:
$ git push origin HEAD --force

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359

推荐阅读更多精彩内容