本文主要記錄個(gè)人日常工作需要的部分命令,進(jìn)一步了解參考一下鏈接: 中文參考:Git教程- 廖雪峰的官方網(wǎng)站, 英文參考:Learn Git
- 安裝配置
Linux:
sudo apt install git
Windows: 官網(wǎng)下載git
$ git init # 創(chuàng)建respository
$ git config --global user.name "Your Name" # 配置用戶名(隨意)
$ git config --global user.email "email@example.com" # 配置郵箱(隨意)
# 配置別名
$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ 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"
- 本地repository操作
$ git add readme.txt # 提交到暫存區(qū)
$ git commit -m "wrote a readme file" # 提交當(dāng)前版本
$ git status # 當(dāng)前狀態(tài)
$ git ls-files # 查看當(dāng)前repository所跟蹤的所有文件
$ git diff readme.txt # 比較文件差異
$ git diff 1094a 89b02 # 比較 版本1094a 和 版本89b02 之間的差異
$ git log # 版本記錄
$ git reset 1094a # 撤回所有1094a版本之后的commit,代碼保持不變(可以用于撤銷(xiāo)錯(cuò)誤的commit)
$ git reset --hard HEAD^ # 回到上一個(gè)版本
$ git reset --hard 1094a # 回到版本1094a
$ git checkout -- readme.txt # 撤銷(xiāo)當(dāng)前修改,回到最近一次git commit或git add時(shí)的狀態(tài)
$ git rm test.txt # 刪除文件
$ git rm --cached # 刪除該文件再repository中的index,即撤銷(xiāo)跟蹤,文件不變(適用于一些本地需要用到,但不需要上傳到repository的文件,如涉密內(nèi)容,緩存文件)
- 遠(yuǎn)程庫(kù)
$ git remote -v # 查看遠(yuǎn)程庫(kù)的信息
$ git remote add origin git@github.com:michaelliao/learngit.git # https協(xié)議
$ git remote add origin https://github.com/YasinLiu/learngit # ssh協(xié)議
$ git clone git@github.com:michaelliao/gitskills.git # 克隆到本地
$ git push origin master # 將當(dāng)前master分支推送到origin遠(yuǎn)程倉(cāng)庫(kù)
$ git pull # 從默認(rèn)遠(yuǎn)程倉(cāng)庫(kù)抓取
$ git checkout -b dev origin/dev # 創(chuàng)建遠(yuǎn)程origin的dev分支到本地
$ git branch --set-upstream-to=origin/dev dev # 設(shè)置dev和origin/dev的鏈接
- 分支管理
$ git branch # 查看分支
$ git branch dev # 創(chuàng)建分支
$ git branch -d dev # 刪除分支
$ git branch -D dev # 強(qiáng)行刪除
$ git checkout dev # 切換到分支dev
$ git switch master # 切換到分支master (版本 2.23.0 后才支持)
$ git checkout -b dev # 創(chuàng)建并切換到分支dev
$ git switch -c dev # 創(chuàng)建并切換到分支dev (版本 2.23.0 后才支持)
$ git merge dev # 將dev合并到當(dāng)前分支(默認(rèn)快速合并)
$ git stash # 將當(dāng)前工作現(xiàn)場(chǎng)“儲(chǔ)藏”起來(lái)
$ git stash list # 參看當(dāng)前stash
$ git stash apply stash@{0} # 恢復(fù)stash{0}
$ git stash drop stash@{0} # 刪除stash{0}
$ git stash pop # 恢復(fù)statsh并刪除
$ git rebase # 本地未push的分叉提交歷史整理成直線
- 標(biāo)簽管理
$ git tag # 查看所有標(biāo)簽
$ git tag v1.0 # 默認(rèn)標(biāo)簽是打在最新提交的commit上
$ git tag v0.9 f52c633 # 標(biāo)簽打在對(duì)應(yīng)的commit id是f52c633
$ git tag -a v0.1 -m "version 0.1 released" 1094adb # 創(chuàng)建帶有說(shuō)明的標(biāo)簽,用-a指定標(biāo)簽名,-m指定說(shuō)明文字
$ git show v0.9 # 查看標(biāo)簽信息
$ git push origin v1.0 # 推送某個(gè)標(biāo)簽到遠(yuǎn)程
$ git push origin --tags # 一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽
$ git tag -d v0.1 # 刪除標(biāo)簽v0.1
$ git push origin :refs/tags/v0.1 # 刪除一個(gè)遠(yuǎn)程標(biāo)簽(先在本地刪除)
- 添加SSH Key
-
github
-
gitee


