
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"