文章目錄
前言
使用git命令時,保持腦海裏有這幅圖
一、提交自己的修改
多人協作時,若自己的本地代碼有了修改,想提交自己的代碼,就需要按照以下步驟操作:
- 保存自己的修改
- 合併遠程
master
分支代碼 - 提交修改到
master
分支
1.準備階段
此階段主要是將遠程代碼拉到自己本地,並切換到自己的分支上
1.1拉取遠程代碼
git clone
1.2切換到自己的分支上
git checkout myBranch
然後我們就可以在自己的分支上進行開發了
2.保存自己的修改
使用以下命令,查看有哪些是自己本次修改而未提交的代碼
git status
提交修改到遠程自己的分支上
git add --all # 提交至暫存區
git commit -m"提交的信息" # 提交至本地倉庫
git push origin myBranch #提交至遠程倉庫
3.合併遠程 master
分支代碼
使用如下命令,拉取遠程 master 分支代碼,併合併到本地當前分支上,這樣就保證本地與遠程master
代碼同步
git pull origin master
4.提交修改到 master
分支
使用如下命令,將本地 myBranch
分支的代碼提交至遠程master
分支上,這樣就保證了遠程master
分支與本地分支代碼同步
git push origin myBranch:master
至此遠程master
代碼與本地當前分支代碼一致了。
三、放棄自己的修改
1.未使用 git add 緩存代碼時
git checkout -- filepathname // 放棄某個文件
git checkout . // 放棄所有文件
git checkout . 用來放棄掉所有還沒有加入到緩存區(就是 git add 命令)的修改:內容修改與整個文件刪除。
但是此命令不會刪除掉剛新建的文件。因爲剛新建的文件還沒已有加入到 git 的管理系統中。所以對於git是未知的。自己手動刪除就好了
2.已經使用 git add 緩存了代碼
git reset HEAD filepathname // 放棄指定文件的緩存
git reset HEAD . // 放棄所有文件的緩存
此命令用來清除 git 對於文件修改的緩存。相當於撤銷 git add 命令所在的工作。
在使用本命令後,本地的修改並不會消失,而是回到瞭如(一)所示的狀態。繼續用(一)中的操作,就可以放棄本地的修改。
3.已經用 git commit 提交了代碼
git reset --hard HEAD^ // 回退到上一次commit的狀態
git reset --hard commitid // 回退到任意版本
使用 git log 命令來查看git的提交歷史,可以找到 commitid
4.放棄新建而沒有被git管理的文件
刪除當前目錄下所有沒有track過的文件. 不會刪除.gitignore文件裏面指定的文件夾和文件, 不管這些文件有沒有被track過
git clean -f
git reset --hard和git clean -f是一對好基友. 結合使用他們能讓你的工作目錄完全回退到最近一次commit的時候
四、解決衝突
開發過程中要時刻保持和遠程master代碼一致
若拉取代碼,或者推送代碼時,提示有衝突(記住有衝突的文件),則可選擇如下兩種方法解決
(1)強制合併之後,一個一個解決(不推薦,自己百度)
(2)將自己的衝突文件(或自己所有修改過的文件)備份到任意一個地方,
然後將工作目錄的代碼回滾到和遠程master相同(通常協作分支上纔會有衝突,此過程請參考三),
然後將備份的衝突文件內容手動搬過來
<<<<<<< HEAD //此處爲當前分支
public static
=======
public void
>>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc
<<<<<<< HEAD 與 ==== 之間的是 當前分支內容, ======= 與 >>>>>>> 分支名 是別的分支的內容