git 操作指令簡述

2021-10-08 15:21:44 字數 4030 閱讀 9458

git安裝好之後執行以下**

$ git config --global user.name "your name"

$ git config --global user.email "[email protected]"

選擇乙個合適的地方,建立乙個空目錄

mkdir learngit 建立資料夾

cd learngit 移動到資料夾

pwd :顯示當前目錄

把這個目錄變成git可以管理的倉庫

git init 初始化git倉庫

把檔案新增到倉庫(一定要放到learngit目錄下(子目錄也行),因為這是乙個git倉庫,放到其他地方git再厲害也找不到這個檔案。)

通過ls -ah檢視所有隱藏資料夾,檢視是否有.git目錄存在

git add readme.txt(目標檔案) 告訴git要準備上傳檔案(git可以新增多個檔案,用逗號隔開)

告訴git,把檔案提交到倉庫(簡單解釋一下git commit命令,-m後面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄裡方便地找到改動記錄。)

git commit -m 「wrote a readme file」 將剛剛add的檔案提交到git倉庫/版本庫

git commit命令執行成功後會告訴你,1 file changed:1個檔案被改動(我們新新增的readme.txt檔案);2 insertions:插入了兩行內容(readme.txt有兩行內容)。

git status命令可以讓我們時刻掌握倉庫當前的狀態,檢視當前倉庫的狀態

git diff顧名思義就是檢視difference(差異),檢視工作區和倉庫的不同

git log命令:檢視歷史記錄,檢視每次提交的狀況

git log --pretty=oneline:簡化歷史記錄 推出:英文狀態下按q

git reset命令:退回版本

在git中,用head表示當前版本

上乙個版本就是head,上上乙個版本就是head

,當然往上100個版本寫100個比較容易數不過來,所以寫成head~100。

cat :讀取檔案資訊

想回到之前的新版本,需要git reset --hard 那個版本的版本號(前幾位就可)

git reflog 調出你之前調出版本的每一次命令

工作區(working directory)

就是你在電腦裡能看到的目錄,比如我的learngit資料夾就是乙個工作區:

版本庫(repository)

工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫。

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

(使用「git checkout–…」放棄工作目錄中的更改)

git checkout – file命令中的–很重要,沒有–,就變成了「切換到另乙個分支」的命令

git restore – file同上,效果相同

當已經修改了檔案,在即將add時,發現檔案有問題,可以通過git checkout – file將檔案回退到最近add或commit時的檔案狀態

如果不但修改了檔案,而且add了 那麼:1,撤回暫存區的內容,通過git reset head file,此時git會將暫存區的內容進行回退,並撤回到工作區。2,執行checkout,進行所有的回退

如果修改並提交到倉庫了,可以用版本回退來彌補

命令git reset head 可以把暫存區的修改撤銷掉(unstage),重新放回工作區

git reset命令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用head時,表示最新的版本

rm 命令:刪除檔案

建立ssh key

ssh-keygen -t rsa -c 「[email protected]

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

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

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

由於安全,如果使用http獲取,第一次推送時需要git驗證身份,如果之前用的是http,現在想換成ssh,找到本地git倉庫,找到.git資料夾,裡面的config檔案,修改其中的url引數,將ssh位址輸入進去,git會提示以下安全警告,剩下的就可以正常提交

拉取更新:執行git pull 遠端分支名 本地分支名 來獲取檔案更新

git checkout命令加上-b引數表示建立並切換

git鼓勵大量使用分支:

檢視分支:git branch git branch命令檢視當前分支,命令會列出所有分支,當前分支前面會標乙個*號

建立分支:git branch

切換分支:git checkout 或者git switch

建立+切換分支:git checkout -b 或者git switch -c (git switch -c 推薦用這種)git switch master 直接切換到已有的master分支

合併某分支到當前分支:git merge

刪除分支:git branch -d

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

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

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

準備合併dev分支,請注意–no-ff引數,表示禁用fast forward:

git merge --no-ff -m 「merge with no-ff」 dev

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

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

當手頭工作沒有完成時,先把工作現場git stash一下,然後去修復bug,修復後,再git stash pop,回到工作現場;

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

開發乙個新feature,最好新建乙個分支;

如果要丟棄乙個沒有被合併過的分支,可以通過git branch -d 強行刪除。

檢視遠端庫資訊,使用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,如果有衝突,要先處理衝突。

rebase操作可以把本地未push的分叉提交歷史整理成直線;

rebase的目的是使得我們在檢視歷史提交的變化時更容易,因為分叉的提交需要三方對比。

命令git tag 用於新建乙個標籤,預設為head,也可以指定乙個commit id;

命令git tag -a -m "blablabla…"可以指定標籤資訊;

命令git tag可以檢視所有標籤。

命令git push origin 可以推送乙個本地標籤;

命令git push origin --tags可以推送全部未推送過的本地標籤;

命令git tag -d 可以刪除乙個本地標籤;

命令git push origin :refs/tags/可以刪除乙個遠端標籤。

命令git config -l可以檢視git配置。

git操作指令

git branch a 檢視所有的分支 git branch r 檢視遠端所有分支 git branch feature bbydownload forbby 基於當前的head新建本地分支。未切換 git checkout develop 切換到develop分支 git push origin...

git操作指令

1.git merge 合併 2.git fetch 從遠端獲取最新版本到本地,不會自動merge git fetch origin master即3 git pull 從遠端獲取最新版本並merge到本地 git pull origin master 即相當於git fetch 和 git mer...

git 操作指令

一 分支操作 建立並切換分支 git checkout b 轉殖分支 git clone 預設master分支,然後建立並切換本地分支追蹤遠端相應分支 git checkout b git checkout b origin dev 合併分支 git merge no ff no ff 禁止快進式合...