一分鐘玩轉 Git

今天又有新來的小朋友問我關於 Git 的用法,我發現仍是有蠻多新人不會用的,或者用很差的。其實想一想本身剛工做時也是倒騰不清楚這些參數和用法,並且總怕出錯,慢慢的多看文檔、用得多了就熟悉了,今天簡單跟你們分享幾點。git

必知的 add & commit

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

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

本地改完了代碼,就用編輯器

git add 文件名/文件夾/多個也可
複製代碼

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

而後再url

git commit -m "comment"
複製代碼

纔會到本地庫。通常後面都會跟個 -m 加句 comment,簡單說下改了啥,像咱們公司你們默認也會把 Jira連接附上,這樣就知道這個改動對應哪一個任務。spa

那若是想再改,再從新 git add 便可,可是 commit 這句須要改爲日誌

git commit --amend
複製代碼

這樣就仍是一條 git log 信息。code

Log

git log 可讓咱們查看提交過的日誌,這個主要是由於若是須要對版本進行前進 or 後退的(下一個 reset),就須要用到編號cdn

直接 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,咱們一一來講一下。

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

咱們剛剛說的前進或後退到某一版本,是對本地庫進行的操做。

那有個問題:
本地庫的代碼跳到那個版本以後,工做區和暫存區的代碼就和本地庫的不一樣步了呀!

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

git reset --hard xxx

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

git reset --soft xxx

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

git reset --mixed xxx

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

因此呢,用的多的就是 hard.

關於 Git 的用法還有不少,若是你們喜歡這個系列還請給我點個「在看」呀,這樣我就更有動力去寫啦~

悄悄話:每次到了週四都以爲週末快到了,想着今天多幹點活明天就能夠早下班了,因此今天效率超級高哈哈~

相關文章
相關標籤/搜索