git命令大全及理解

2021-10-06 11:26:50 字數 3309 閱讀 1741

今天想來認真的學習下git,平常也只是會用到簡單的那幾個git命令,下面來學一下從開始建立版本庫開始把~~

此時我們新建立了乙個新的目錄learngit,

git init通過這個命令可以把乙個目錄變成git可以管理的倉庫;這個時候該目錄下就會有乙個.git的檔案了。

1、在learngit目錄下建立乙個readme.text檔案,內容為:

git is a version control system.

git is free software.

這個時候我們來提交下**:

git add readme.text

git commit -m "新建readme.text檔案"

這個時候已經建立並提交readme.text檔案了。

下面來檢視下如何時刻掌握倉庫當前的狀態,這個時候就會用到git status了。

2、比如你休假兩周從國外回來,第一天上班時,已經記不清上次怎麼修改的readme.txt,所以,需要用git diff這個命令看看:

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

1、版本回退之前,我們得先來用git log來看下提交歷史,以便確定要回退到哪個版本;如果嫌輸出資訊太多,看得眼花繚亂的,可以試試加上–pretty=oneline引數;

2、接下來看下回退到上乙個版本git reset --hard head**;首先git必須知道回退到哪個版本,在git中,用**head**表示當前版本,上乙個版本就是head…,上上個版本就是head^ ^,當然回退100個版本只要寫成head~100就可以了。

3、在git中,總是有後悔藥可以吃的。當你用$ git reset --hard head^回退到上個版本時,再想恢復到下個版本,就必須找到上個版本的commit id。git提供了乙個命令git reflog**用來記錄你的每一次命令,檢視命令歷史,以便確定要回到未來的哪個版本。

1、工作區:你在電腦裡能看到的目錄,比如我的learngit資料夾就是乙個工作區,工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫。

2、暫存區:git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有git為我們自動建立的第乙個分支master,以及指向master的乙個指標叫head。

前面講了我們把檔案往git版本庫里新增的時候,是分兩步執行的:

第一步是用git add把檔案新增進去,實際上就是把檔案修改新增到暫存區;

第二步是用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。

1、場景1:當你改亂了工作區某個檔案的內容,想直接丟棄工作區的修改時,用命令git checkout – file

2、場景2:當你不但改亂了工作區某個檔案的內容,還git add 新增到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset head,就回到了場景1,第二步按場景1操作。

3、場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠端庫。

git rm用於刪除乙個檔案。如果乙個檔案已經被提交到版本庫,那麼你永遠不用擔心誤刪,但是要小心,你只能恢復檔案到最新版本,你會丟失最近一次提交後你修改的內容。

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

2、關聯後,使用命令git push -u origin master第一次推送master分支的所有內容;

此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改;

1、檢視分支:git branch

2、建立分支:git branchname

3、切換分支:git checkoutname或者git switch name

4、建立+切換分支:git checkout -bname或者git switch -cname

5、合併某分支到當前分支:git mergename

6、刪除分支:git branch -dname

7、當git無法自動合併分支時,就必須首先解決衝突。解決衝突後,再提交,合併完成。

解決衝突就是把git合併失敗的檔案手動編輯為我們希望的內容,再提交。

git log --graph命令可以看到分支合併圖。

8、合併分支時,加上git merge --no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。

9、修復bug時,我們會通過建立新的bug分支進行修復,然後合併,最後刪除;

在master分支上修復的bug,想要合併到當前dev分支,可以用git cherry-pick命令,把bug提交的修改「複製」到當前分支,避免重複勞動。

10、檢視遠端庫資訊,使用git remote -v

本地新建的分支如果不推送到遠端,對其他人就是不可見的;

從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠端的新提交

在本地建立和遠端分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠端分支的名稱最好一致;

建立本地分支和遠端分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

從遠端抓取分支,使用git pull,如果有衝突,要先處理衝突。

11、git rebase操作可以把本地未push的分叉提交歷史整理成直線;rebase的目的是使得我們在檢視歷史提交的變化時更容易,因為分叉的提交需要三方對比。

好啦,今天就先學到這裡啦~~~

Git 命令大全

git 的特點 1.關注檔案的整體變化 2.git 更像是把變化的檔案作快照後,記錄在乙個微型的檔案系統中。每次提交更新時,它會縱覽一遍所有檔案的指紋資訊並對檔案作一快照,然後儲存乙個指向這次快照 的索引。為提高效能,若檔案沒有變化,git 不會再次儲存,而只對上次儲存的快照作一鏈結。基本的 git...

git命令大全

公司使用了github 特意從網上總結下常用的git命令,備用 1 遠端倉庫相關命令 檢出倉庫 git clone git 首次開發必用 檢視遠端倉庫 git remote v 新增遠端倉庫 git remote add name url 刪除遠端倉庫 git remote rm name 修改遠端...

git命令大全

git 是乙個很強大的分布式版本控制系統。它不但適用於管理大型開源軟體的源 管理私人的文件和源 也有很多優勢。git常用操作命令 1 遠端倉庫相關命令 檢出倉庫 git clone git 檢視遠端倉庫 git remote v 新增遠端倉庫 git remote add name url 刪除遠端...