一分鐘玩轉 Git

文章來源于公眾號碼農田小齊 ,作者小齊本齊

今天又有新來的小朋友問我關于 Git 的用法,我發現還是有蠻多新人不會用的,或者用不好的。其實想想自己剛工作時也是倒騰不清楚這些參數和用法,而且總怕出錯,慢慢的多看文檔、用得多了就熟悉了,今天簡單跟大家分享幾點。

必知的 add & commit

首先我們要清楚在本地的三種狀態:

image

好吧我把命令已經寫上去了。

本地改完了代碼,就用

git add 文件名/文件夾/多個也可

提交到緩存區,這里如果文件改動的比較多,但又不是每個都需要提交,我會設置 git ignore file,就表示這些文件不要提交,比如在 build project 的時候會自動生成的那些文件等等。

然后再

git commit -m "comment"

才會到本地庫。一般后面都會跟個 -m 加句 comment,簡單說下改了啥,像我們公司大家默認也會把 Jira鏈接附上,這樣就知道這個改動對應哪個任務。

那如果想再改,再重新 git add 即可,但是 commit 這句需要改成

git commit --amend

這樣就還是一條 git log 信息。

Log

git log 可以讓我們查看提交過的日志,這個主要是因為如果需要對版本進行前進 or 后退的(下一個 reset),就需要用到編號

直接 run

git log

的話就會顯示一大坨信息,從近到遠顯示每次 commit 的 comment 還有作者、日期等信息,比如大概長這個樣子:

commit 5abcd17dggs9s0a7a91nfsagd8ay76875afs7d6
Author: Xiaoqi<xiaoqi@163.com>
Date: xxx xxx xxx
改了 Test 文件

commit 后面的這個編號,是每次歷史記錄的一個索引

這樣打印的 log 太多,更簡潔的打印方式是:

git --oneline

就一行打印出來了。

或者:

git reflog

更常用一些。

Reset

那我們剛剛說過,如果需要前進或退回到某個版本,就用

git reset --hard <編號>

這樣就直接跳到了這個編號對應的那個版本。

那么這個 hard 是什么意思呢?

這里有 3 個參數:hard, soft, mixed,我們一一來說一下。

回到我們最重要的這張圖上來:

image

我們剛剛說的前進或后退到某一版本,是對本地庫進行的操作。

那有個問題:
本地庫的代碼跳到那個版本之后,工作區和暫存區的代碼就和本地庫的不同步了呀!

那這些參數就是用來控制這些是否同步的。

git reset --hard xxx

三個區都同步,都跳到這個 xxx 的版本上。

git reset --soft xxx

前面兩個區不同步,就只有本地庫跳到這個版本。

git reset --mixed xxx

暫存區同步,工作區不動。

所以呢,用的多的就是 hard.

【完】

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