快速上手Git

2022-08-15 08:48:12 字數 2461 閱讀 8522

本文主要摘錄於廖雪峰的git教程,個別地方做了可能不恰當的修改或補充,主要方便自己回顧。檢視更詳細內容請移步廖老師部落格。同時,感謝廖老師寫出這麼好的入門指導。

(有彩蛋!!!)

一、熱身 

1.初始化乙個git倉庫。先進入到乙個本地目錄下,然後使用git init命令將目錄初始化。

2.新增檔案到git倉庫,需要2條命令:

1)使用命令git add ,可反覆多次使用,新增多個檔案,也可一次新增多個檔案。

2)使用命令git commit -m "日誌內容"進行提交。

二、進入狀態

1.要隨時掌握工作區的狀態,使用git status命令。

2.如果git status告訴你有檔案被修改過,用git diff可以檢視修改內容。

:cat ,是乙個linux命令,表示由第一行開始顯示檔案內容。類似的還有tac:從最後一行開始顯示;head:檢視頭幾行;tail:檢視尾幾行,等等。

三、玩點高階的: 版本回溯

1.head指向的版本就是當前版本,上一版本是head^,每上一版本加乙個^符號。使用命令「git reset --hard head^」,回溯到上一版本。使用命令「git reset --hard 版本號」,回溯到具體版本。

版本號不用寫全,寫前4、5位就可以了。

2.用「git log 」檢視某一檔案從第一次提交到當前版本的提交歷史,以便確定向前回溯到哪個版本。省略檔名,表示命令對該目錄下所有檔案生效。

3.用「git reflog 」檢視某一檔案的命令歷史(提交、回溯),以便確定向後回溯到哪個版本。

:當前版本不一定是最後提交的版本。

補充內容:(以下來自segmentfault使用者xiaochao)

git不能把單獨的某個檔案恢復到指定的版本,如果要這要做,可以這樣:

1)git reset 版本號,這時候,會產生乙個和版本號對應的分支

2)git checkout到這個分支,把要恢復的檔案拷貝走

3)git checkout到原來的分支,把檔案再拷貝回來,覆蓋掉現在的檔案,然後git add,git commit

四、再說add與commit

1.每次修改檔案後,commit之前,都要先對修改的檔案進行add操作。如果不先add到暫存區,那麼無法commit。

2.在某一次修改檔案後,add到暫存區。然後又做了第二次修改,第二次修改後沒有add操作。這樣commit,只會將第一次的修改提交,第二次所做的修改不會被提交。

五、後悔藥

場景1:當你誤改了工作區某個檔案的內容,想將檔案回退到修改之前的樣子時,用命令git checkout -- 。(注意「--」不能少)

場景2:當你誤改了工作區某個檔案的內容,並且將其add到了暫存區,想將檔案回退到修改之前的樣子時,分兩步,第一步用命令git reset head /資料夾,這樣檔案就回到了工作區(即撤銷add)

,第二步按場景1操作即可。

場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回溯內容,不過前提是沒有合入到遠端庫。如果已push到遠端庫,想要回溯版本。先回退本地庫,再git push -f合入到遠端庫。(注意:本地庫回溯後,版本將落後遠端庫,必須使用強制推送覆蓋遠端庫,否則無法合入到遠端庫)

六、刪除檔案

1.git checkout其實是用本地版本庫里的檔案替換工作區/暫存區的檔案,無論工作區/暫存區的檔案經過修改還是刪除,只要版本庫中還有,都可以進行還原。還原後的檔案可以回溯到任意版本。

2.命令git rm用於刪除版本庫中的檔案。刪除後並且commit,就真的從本地版本庫刪除了。(如果乙個檔案已經被提交到版本庫,那麼你永遠不用擔心在工作區和暫存區誤刪,但是要小心,誤刪之前做的修改如果沒有add/commit是無法找回的。)

七、遠端版本庫

1.要關聯乙個遠端版本庫,使用命令git remote add origin git@server-name:path/repo-name.git。

2.關聯後,使用命令git push -u origin master第一次合入master分支的所有內容到遠端版本庫。此後,每次本地提交後,只要有必要,就可以使用命令git push推送最新修改。如果github上的檔案比本地版本庫的版本新,那麼push之前會提示先pull。執行git pull會進入vim讓填comment,不填直接:q退出即可,然後就可以push了。

(同理:如果乙個檔案已經被合入到遠端版本庫,那麼你永遠不用擔心在本地版本庫誤刪,當然,這只是我目前的理解,不一定準確。)

最後彩蛋,是我繪製的一張簡易的git工作流程示意圖:-)

彩蛋2,推薦一本《github入門與實踐》,作者大塚弘記,我剛看了一半,非常好的入門書。

本作品採用知識共享署名 4.0 國際許可協議進行許可。

GIT 快速上手

建立linux的大佬 linus 花了兩周時間自己用c寫的乙個分布式版本控制系統。在2002年以前,世界各地的志願者把源 檔案通過diff的方式發給linus,然後由linus本人通過手工方式合併 為什麼linus不把linux 放到版本控制系統裡呢?不是有cvs svn這些免費的版本控制系統嗎?因...

git快速上手教程

前幾周我第一次同時推進幾個任務,結果迷失在git版本的海洋中不能自拔。後來在同事的幫助下終於脫坑,在此把一些git的簡明用法分享給git新手們。git是用來進行版本控制的,對於同乙個專案,不同的電腦上可以存有不同的版本,同一臺電腦上也可以儲存多個版本。每個版本或者有唯一的父版本,或者由兩個版本合併而...

Git快速上手教程

首先在你的github上新建專案。然後安裝好git後,找到你專案的資料夾輸入如下命令 git init git commit m frist commit git remote add origin 你的專案位址.git git push u origin master 當你遇見這個問題時,原因是你...