1. 程式人生 > >Git 操作之解決衝突

Git 操作之解決衝突

Git在pull的時候是非常容易衝突的,不僅僅是在於修改檔案衝突,還有一種衝突是由於只commit不push的情況下進行pull

具體情況如下:

git 衝突問題
1.a修改了README檔案,commit(但不push)
2.b也修改了README檔案,同時增加了hello.c檔案,commit & push了
此時a更新,就會出現衝突,這不僅僅是衝突,而且提交者不正確處理,會出現提交兩次hello.c的檔案,或者可能還會刪掉檔案。因為它與SVN不一樣,SVN只管提交自己的的修改,儲存的是差異化內容;但Git不是這樣的,所以需要謹慎處理

解決辦法:
a當前應該保持乾淨的分支(就算有commit也不影響,因為當前狀態已包含commit, 當前應該是沒有修改或新增)
在a目錄下建立前切換分支(同時會把commit的記錄保留),意思是把內容先切換過去分支上儲存:
git checkout -b test_merge
然後再切回master:
git checkout master
強行重置到master最新狀態:
git reset --hard origin/master
再把test_merge合併回來master:
git merge test_merge
此時,先把衝突解決,然後再提交(就不會出現提交2次的情況了)

這個情況在我所在的專案裡已經有人多次出現,如果出現類似情況,一定要慎重處理,否則會出現麻煩

相關推薦

Git 操作解決衝突

Git在pull的時候是非常容易衝突的,不僅僅是在於修改檔案衝突,還有一種衝突是由於只commit不push的情況下進行pull 具體情況如下: git 衝突問題 1.a修改了README檔案,commit(但不push) 2.b也修改了README檔案,同時增加了hel

git操作衝突解決

應用場景,任哥,我兩個人共同修改了git專案上的一個檔案。zsh命令列模式 準備工作 簡寫命令解釋 gl=git pullgp=git pushgst=git statusgcmsg=git commit -m 操作演示檔案 test_git.py 切換到分級developer git checkou

git操作pull拉取遠端指定分支以及push推送到遠端指定分支

一、pull操作 1、將遠端指定分支 拉取到 本地指定分支上: git pull <遠端倉庫名> <遠端分支名>:<本地分支名> 2、將遠端指定分支 拉取到 本地當前分支上: git pull <遠端倉庫名>

Git 使用rebase解決衝突

使用rebase解決衝突 1. 再現衝突 你的提交push到遠端倉庫了, 被檢測出有衝突. *a.* 在本地找到你有衝突的分支(子分支), 將未儲存的改動stash起來 *b.* 檢出到你這個分支的父分支(即你的提交會被merge到的那

git操作git rebase

git rebase可以簡單的理解為調整commit資訊,包括合併commit資訊到master(與merge類似,但是效果不同)以及刪除commit資訊或者修改log資訊等,下面分別介紹幾種git rebase常用的場景。 合併commit資訊到mast

git 操作合併commit(提交之前本地合併)

本篇文章主要講的是git操作之合併同一個分支的不同提交資訊,即將多個提交記錄合併為一個。 這裡主要是使用“git rebase”命令,推薦在未提交到遠端倉庫的時候修改本地記錄使用。 步驟: 一、首 先要切換的要合併commit的分支 二、然後使用命令

GITgit提交和解決衝突小經驗

背景   雖然看過了公司關於git的培訓視訊。聽著挺明白的,但是實際操作,解決衝突時就是另外一回事。這篇文章先來簡單介紹一下git不同於cvs和svn的一些概念,再分享一下自己在專案中和同事修改同一檔案遇到衝突時的解決方案。 git中的概念

git 操作程式碼的獲取與提交

最近開始使用git命令操作時,經常使用到的一些操作,之後還會陸續更新…… git log:顯示提交的記錄 git log -p:標記檔案的哪個部分發生了改變 git log –name-status:顯示被修改的檔案的名字(需要注意的是:name前

git apply patch解決衝突

$ git status # Not currently on any branch. # Changes not staged for commit: #   (use "git add <file>..." to update what will be committed) #   (use

git操作發現push到遠程倉庫的代碼有誤

修正 繼續 上進 效果 .com log img 自己 行修改 有時候,我們可能發現把本地代碼push到中央倉庫的某一個commit不對,處理方法具體分以下兩個部分進行討論 1. 出錯的代碼,只在遠程倉庫你自己的branch上面,沒有合並到mater情況 如果只是出錯在

git操作四:git branch(本地倉庫)

前面,介紹了git init/add/commit/restore/reset等git命令,今天介紹下git branch,這個命令是和分支相關的。首先要理解什麼是分支,簡單來說在協作開發中,每個人開發的功能都是不一樣的,每個人在開發的時候總是在自己的分支上進行開發,待測試正常後會把程式碼合併到一個穩定的分支

在Eclipse上使用SVN,安裝、提交、拉取程式碼、解決衝突操作---------健康

一,什麼是SVN ?    svn是一種版本控制軟體,主要作用就是用於公司的專案管理。這裡先大概說一下svn的使用流程。    首先由專案經理在SVN伺服器上建立SVN倉庫(放專案的地方),併為各個專案成員註冊對應的賬號。在開始一個專案時,一般專案經理

Web前端工程化VSCode+Git 解決衝突和error

         多人協作開發使用版本控制難免會有衝突,在前端使用VSCode和Git過程中,就會遇到大大小小的衝突,有的merge一下,然後提交推送就可解決,有的是因為HEAD指標混亂造成,本地和遠端分支拉取/合併問題。 問題1、直接解決衝

Git使用——衝突解決一(git merge conflict)

Git衝突是在多使用者協同工作下出現,在一些情況下Git可以智慧自動合併,但有時需要使用者手動合併。 一. Git智慧自動合併 1. 多成員修改不同檔案 這和之前所述的“非快進式推送”一致,按照其方式解決(http://blog.csdn.net/u012150179/

Git初學札記(四)————Git Push的常規操作與Pull衝突解決

目錄 引言 同步 圖示 重點 引言 在團隊開發當中,Git Push是多人協作環節中的最重要的一環可能沒有之一。同SVN一樣,push操作可以看做是對遠端程式的提交。 在多人協作中,push往往是最容易出現問題的一個環節,因為其他開發者有可能修改

Git使用Permission Denied問題解決

it is efault not style 能夠 res star ria 使用 今天碰到了Git的Permission Denied問題。 在安裝好git之後,我們通常會配置username和郵箱 git config --global user.name

請求部署在 IIS7.5 上的 REST 服務的 Put/Post/Delete 操作發生 HTTP Error 405.0 - Method Not Allowed 錯誤解決

超文本 sha 參考 handlers ron bapi .com rest 通過 背景 請求部署在 IIS7.5 上的 REST 服務的 Put/POST/DELETE 操作發生 HTTP Error 405.0 - Method Not Allowed 錯誤。 Issu

Git常用操作刪除操作

delete stat chan update 常用 del 進入 code res Git刪除操作有兩種 1.git rm 2.rm 有何不同? git rm直接包含了add操作。show you the code bocur@DESKTOP-PTRIQEA /d/p

git pull 之後merging衝突解決

一、出現merging衝突的原因:git遠端上存在一個本地不存在的git 分支,就是本地遠端程式碼不同步 二、解決方式: 方法一: git pull 出現衝突後可以暫存本地修改git stash ,然後git pull 更新程式碼,git stash list 可檢視暫存記錄列表,釋放本地暫存 

mzy git學習,分支衝突,以及衝突解決(五)

衝突解決: 先嚐試製造衝突: 首先我:git checkout -b mzy 建立一個mzy的分支 然後在其中修改readme.txt檔案,隨便加上一點東西。 vim readme.txt   write... wq 然後: git add r