Git_05_提交自己的修改

前言

使用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 與 ==== 之間的是 當前分支內容, ======= 與 >>>>>>> 分支名 是別的分支的內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章