git基本命令以及使用場景介紹

使用了一陣子git,記錄一下收獲以及遇到的問題或者是解決辦法,如果文章中有什么錯誤,或者有什么疑問可以指出交流 :)

1 git基本流程

可能以下流程不是標準的git flow,但是日常開發中用的最多的也是這幾個命令,有錯之處還望指正

第一步 從遠端克隆倉庫

git clone <倉庫地址>

第二步 從master開一個新的分支

git checkout -b <分支名稱>

如果只是切換已經有的分支就不用加-b了,比如,遠端有一個dev分支,本地在從master分支切換到dev分支的時候就不需要加-b參數了:

git checkout dev

第三步 提交修改的代碼

git commit -a -m "git message"

這里的參數-m是可以填寫提交信息,后面的git message就是填寫的提交信息,至于提交信息的填寫規范可以自行查看。
參數-a是用來把已經被git追蹤的修改或刪除的文件提交,如果只是修改或者刪除文件的話可以不使用git add,但如果有新增的文件,在提交前需要把文件添加到 git系統中:

git add .

.表示所有的文件,也可以指定具體的文件名,但是我一直都是git add .,圖方便嘻嘻

第四步 把分支合并

git checkout master //切換到master分支
git pull --rebase origin master //拉取遠端master代碼
git merge <分支名稱> //合并分支

在提交完自己分支修改的代碼之后,首先切換到需要合代碼的分支,比如master分支,然后拉取遠端代碼,因為在協同工作的時候,可能別人已經把修改之后的代碼推到遠端,所以需要先把master更新到最新,然后再把自己的分支合并即可。
拉代碼的時候不加--rebase也沒有關系,只不過加了--rebase以后git的提交樹會比較清爽,感興趣的可以搜變基合并

第五步 把修改提交到遠端

上一步已經把修改合并到了master分支上,然后把本地的master分支推到遠端:

git push origin master  

第六步 刪除自己的分支

git branch -d <分支名稱>

在功能分支合并了以后,就可以把功能分支刪除了。
如果功能分支沒有合并的話,-d是無法刪除該分支的,但如果非要刪,可以用-D參數強制刪除該分支:

git branch -D <分支名稱>

不加參數的話就是查看本地所有分支:

git branch

如果本地的分支已經刪除,還想刪除遠端的分支的話,可以用:

git push origin :<分支名稱>

因為本地分支已經刪除了,所以要在分支名稱前加上:,不然push的時候會報錯說分支不存在

2 解決問題

2.1 暫存

在日常開發中,可能在寫一個需求的時候,讓你改一個緊急的bug,而且是在同一個項目里,這時候就要使用git的儲存了

git stash //把修改的內容儲存起來
git stash list //查看儲存的堆棧
git stash pop //把最近的儲存取出到工作區并且刪除堆棧中的這次儲存
git stash apply //應用最近的儲存
git stash drop //刪除最近的儲存
git stash clear //清空儲存堆棧

這些儲存操作默認都是最近的一次儲存,當然,popapplydrop操作可以指定第幾次儲存,命令最后需要加stash@{$num},比如默認的就是stash@{0},但是省略掉了。
需要注意的是,能夠儲存的文件必須得是被git追蹤的文件,如果一個新增的文件沒有add過是不能被儲存的
還有一點儲存的用處就是我之前丟棄修改的時候是先git stash,然后直接git statsh clear把儲存刪除,相當于丟棄了我的修改。

2.2 回退

回退的問題可以有很多花里胡哨的情況發生,還好我日常中遇到需要回退的情況比較少。

2.2.1 丟棄工作區的內容

工作區的內容,就是還沒有執行git add的修改,可以用git checkout來丟棄修改

git checkout -- *
2.2.2 丟棄暫存區的內容

暫存區的內容,就是在執行了git add以后,但是還沒有git commit,就需要使用git reset

git reset HEAD *

這樣可以把暫存區的內容回退到git add以前,然后可以使用git checkout來丟棄修改

2.2.3 回退提交

在提交了以后想要回退,然后要保留修改的代碼

git reset --soft HEAD^

這是回退到上一個提交節點,每多退一次提交就加一個^,當然也可以用HEAD~3,這個3就表示要回退。
如果要回退并且直接丟棄所有修改,只需要把參數--soft改為--hard即可

git reset --hard HEAD^

3 寫在最后

以上差不多就是我在工作之中使用git的一些收獲,可能會有錯誤,如果發現有什么不對的地方還望指正

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • git 使用筆記 git原理: 文件(blob)對象,樹(tree)對象,提交(commit)對象 tree對象 ...
    神刀閱讀 3,794評論 0 10
  • Add & Commit git init 初始化一個 Git 倉庫(repository),即把當前所在目錄變成...
    冬絮閱讀 4,880評論 0 9
  • 安裝: windows安裝git-- msysgit是windows版的git,下載單獨的.exe按照默認選項安裝...
    alceyp閱讀 704評論 0 0
  • 初始化git 配置git 使用Git的第一件事就是設置你的名字和email,這些就是你在提交commit時的簽名,...
    MiracleJQ閱讀 1,426評論 0 0
  • 一:Git是什么? Git是目前世界上最先進的分布式版本控制系統。 二:SVN與Git的最主要的區別? SVN是集...
    Splendid飛羽閱讀 329評論 0 0