天天看點

Git 相關指令用法合集

Git 相關指令用法合集

mkdir 建立版本庫(檔案夾)

pwd 顯示目前目錄

git init 把目前目錄變成git可以管理的倉庫

ls -ah 顯示目前目錄中的隐藏檔案

Git 添加檔案需要兩步:

(1) git add 把某檔案添加到倉庫

(2) git commit -m " 本次送出說明 " 把該檔案送出到倉庫

(可以多次add不同的檔案,用一個commit來描述這次送出)

git status 顯示倉庫的目前狀态

git diff + 檔案名 檢視修改的具體内容

git log 檢視送出記錄 + (--pretty=oneline)精簡輸出資訊為一行;以便确定要回退到哪個版本

git reflog 檢視指令曆史,以便确定要回到未來的哪個版本。

git 中 HEAD 表示目前版本:

git reset --hard HEAD^ 回退到上一個版本;

(HEAD^^表示回退到上上個版本;HEAD~100回退到前100個版本)

cat + 檔案名 顯示目前檔案的内容

git reset --hard + 版本id的前幾位數字 重新回到未來的某個版本

工作區:電腦上能看到的檔案目錄,如 Learn_git

版本庫:工作區的隐藏目錄 .git,其中包括最重要的暫存區stage和自動建立的master分支

git add 指令實際上就是把要送出的所有修改放到暫存區(Stage),

然後,執行 git commit 就可以一次性把暫存區的所有修改送出到分支。

1.若修改還未添加到暫存區:

指令git checkout -- readme.txt就是,把readme.txt檔案在工作區的修改全部撤銷,有兩種情況:

一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀态;

一種是readme.txt添加到暫存區後,又作了修改,現在,撤銷修改就回到添加到暫存區後的狀态。

總之,就是讓這個檔案回到最近一次git commit或git add時的狀态。

2.若隻是添加到了暫存區還沒有送出:

git reset HEAD + 檔案名 可以把暫存區的修改撤銷掉(unstage),重新放回工作區

3.若修改已經送出到了版本庫:

采用版本回退指令:git reset --hard HEAD^ 回退到上一個版本;

rm test.txt 在檔案管理器中删除檔案:

(1) 确實從版本庫中删除檔案: git rm test.txt 然後 git commit -m

(2) 删錯了,但版本庫中還有,把誤删恢複: git checkout -- test.txt

git checkout 其實是用版本庫裡的版本替換工作區的版本,無論工作區是修改or删除,都可以還原。

添加遠端庫:

(1) 建立SSH key 指令 :ssh-keygen -t rsa -C "[email protected]"

(2) 登陸GitHub,打開 “Account settings”,“SSH Keys”頁面:

(3) 點 “Add SSH Key”,填上任意Title,在Key文本框裡粘貼使用者主目錄中.ssh中 id_rsa.pub的内容:

git remote add origin [email protected]:wangjinxile/Learn_git.git 關聯一個遠端庫

git push -u origin master 把本地庫上的内容推送到遠端庫上

git push origin master 之後需要送出至遠端的指令

從遠端庫更新至本地

git pull

從遠端庫克隆:

git clone [email protected]:wangjinxi/xxxxx.git

檢視分支:git branch

建立分支:git branch <name>

切換分支:git checkout <name>

建立+切換分支:git checkout -b <name>

合并某分支到目前分支:git merge <name>

删除分支:git branch -d <name>

分支變化情況的直覺展示: git log --graph --pretty=oneline --abbrev-commit

git merge --no-ff -m "merge with no-ff" dev禁用fast-forward分支合并形式,删除分支後仍能看出合并

當手頭工作沒有完成時,git stash 存儲工作現場,

git stash list 檢視工作現場清單,git stash apply stash@{0} 指定恢複清單中的哪一個現場

恢複現場時:

一是用git stash apply恢複,但是恢複後,stash内容并不删除,你需要用git stash drop來删除;

另一種方式是用git stash pop,恢複的同時把stash内容也删了:

git branch -D feature-vulcan 強行删除沒有合并的分支

git remote (-v) 檢視遠端倉庫(詳細)資訊

git push origin master 推送合并本地同名的master分支(主分支需要及時合并)

git 的标簽是指向某個commit ID的指針:

(1) 切換到需要打标簽的分支

(2) git tag v1.0 打标簽 + ID号 對指定ID的分支打标簽

(3) git tag 檢視标簽 -d + 标簽名 删除

git show v0.9 顯示标簽資訊

$ git tag -a v0.1 -m "version 0.1 released" 3628164 -a 跟版本号,-m 跟注釋說明 再跟ID

git push origin <tagname> 推送某标簽到遠端

git push origin --tags 推送所有為上傳至遠端的标簽

删除遠端标簽:

(1) 先删除本地 :git tag -d + 标簽名

(2) 再删除遠端: git push origin :refs/tags/标簽名

忽略特殊檔案是的檢視git status時不會每次提醒:在本地建立.gitignore檔案,把要忽略的檔案名填進去

配置别名:git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

Git 相關指令用法合集