Git 指令集
文章目錄
- 初始化配置
- SSH Key
- git指令
- 遠程倉庫
- 把本地倉庫的內容推送到GitHub上
- 從遠程庫克隆
- 其他
初始化配置
// 配置用戶名 git config --global user.name "Your Name" // 配置郵箱 git config --global user.email "email@example.com" // 生成 SSH 密鑰 ssh-keygen -t rsa -C "email@example.com"- global : 全局
SSH Key
- 首先查看自己的用戶主目錄下有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,有了就說明你已經有了SSH Key了.
- 沒有的話就需要創建SSH key,打開Git Bash,輸入ssh-keygen -t rsa -C "email@example.com"
- 其中id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心告訴任何人.
git指令
-
git init : 創建版本庫(最好在空目錄下創建版本庫)
-
git add
- git add <file1 file2 ...> : 將文件名為file1和file2的文件添加到暫存區中去
- git add . : 將所有修改和新建的文件添加到暫存區中去
-
git rm <file> : 從版本庫中刪除文件 (先手動刪除文件,然后使用git rm <file>和git add <file>效果是一樣的。)
- git rm -r <file> : 可以刪除文件夾
-
git commit -m <message> : 將暫存區的所有內容提交到當前分支.
-
git status : 查看當前暫存區中的狀態
-
git diff
- git diff file : 查看版本和版本,以及版本和工作區的區別,這個版本可能在緩存區,也可能在倉庫的當前分支。
- git diff HEAD -- <file> : 查看file文件在工作區和版本庫里面最新版本的區別
-
git log : 查看提交日志
- git log --pretty=oneline : 將輸出信息簡潔成一行
- git reflog : 查看每一次命令信息 (可以查看版本號)
- git log --graph : 查看分支合并圖
-
git reset
- git reset --hard HEAD^ : 將當前版本回退到上個版本,回退前5個版本將HEAD^改成HEAD~5即可
- git reset --hard <commit id> : 將版本更改為commit id對應的版本,此用法既可以前進也可以后退.版本號在書寫時沒有必要寫全,寫前5位即可,Git會自動去找
- git reset HEAD <file> : 把暫存區的修改撤銷掉(unstage),重新放回工作區
-
git checkout
-
git checkout -- <file> : 把file文件在工作區的修改全部撤銷,這里有兩種情況:
- 一是file自修改后還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
- 一是file已經添加到暫存區后,又作了修改,現在,撤銷修改就回到添加到暫存區后的狀態。
- 總之,就是讓這個文件回到最近一次git commit或git add時的狀態。
注:git checkout file ,并不會將新建文件檢出(撤銷)
-
git checkout -b <dev> : 創建dev分支,然后切換到dev分支,相當于git branch dev和git checkout <dev>兩條命令
-
git checkout -b <dev> <origin/dev> : 創建dev分支,并從將遠程origin的dev加入本地dev中
-
git checkout <dev> : 切換分支為dev
-
-
git branch : 查看當前分支
- git branch <name> : 創建分支
- git branch -d <dev> : 刪除dev分支
- git branch -d <dev> : 強制刪除dev分支
- git branch --set-upstream-to=<origin/dev> <dev> : 將遠程origin/dev與本地dev鏈接起來
-
git switch(new) :
- git switch -c <dev> : 創建并切換到新的dev分支
- git switch master : 切換分支為master
-
git merge <dev> : 把dev分支的工作成果合并到當前分支上.
- git merge --no-ff -m <message> <dev> : 禁用Fast forward的合并分支方法
-
git push <遠程主機名> <本地分支名>:<遠程分支名> : 推送
- git push origin <tagname> : 將某個標簽推送到遠程
- git push origin --tags : 將全部標簽推送到遠程
- git push origin :refs/tags/<tagname> : 刪除一個遠程標簽.PS : 想要將本地的刪除
-
git pull : 按照git branch 設置的默認跟蹤的服務器和分支來拉取。
- git pull origin master : 拉取遠程服務器origin的master分支
-
git stash : 將當前工作現場暫時存儲起來
- git stash list : 查看存儲的工作現場的列表
- git stash apply <id>: 恢復存儲名為id的工作現場
- git stash drop : 刪除存儲名為id的工作現場
- git stash pop : 恢復棧頂的工作現場,并刪除
-
git cherry-pick <commit id> : 將commit id中的內容合并到當前分支
-
git remote : 查看遠程庫
- git remote -v : 查看本地與遠程庫的連接狀態
-
git rebase : 把本地未push的分叉提交提示整理成直線
-
git tag : 查看所有標簽
- git tag <name> : 給當前commit打上標簽名為name的標簽
- git tag <name> <commit id> : 給指定的commit id打上標簽
- git tag -a <name> -m <message> <commit id> : -a指定標簽名,-m指定說明文字
- git tag -d <name> : 刪除標簽
-
git show <tagname> : 查看當前標簽信息
-
增補提交:git commit -C head -a -amend ,不會產生提交歷史記錄。
遠程倉庫
把本地倉庫的內容推送到GitHub上
git remote add <origin> <SSh或HTTP地址> : origin是遠程庫的名稱,可以自己修改,但origin是Git的默認叫法
git push -u <origin> master : 將本地庫的內容推送到遠程上(通常是第一次將本地倉庫推送到遠程倉庫).由于遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令。不用每次指令分支
以后在本地做了提交就可以通過命令git push origin master把本地master分支的最新修改推送至GitHub
從遠程庫克隆
git clone <SSH or HTTP address> : 將遠程倉庫克隆到本地
其他
git config --global push.default simple : 設置 Git 命令 push 的默認模式為 simple,當我們執行 git push 沒有指定分支時,自動使用當前分支,而不是報錯。
總結
- 上一篇: 如何求欧拉函数~转载
- 下一篇: composer 使用指南