git使用總結
一、安裝
$ sudo apt-get install git ubuntuxia
windows下使用msysgit
二、使用
1.配置
$git config --global user.name "xxx"
$git config --global user.email "[email protected]"
2.創建倉庫
cd learngit/
$ git init
3.添加文件到倉庫
$ git add filename
4.把文件提交到倉庫
$git commit -m "輸入操作的描述" 添加和提交的過程類似於關系型數據庫的事務提交一樣
5.查看工作區狀態
$git status
$git diff HEAD -- ‘filename‘ 查看工作區和master區的區別
6.查看提交歷史/查看所有歷史命令
$ git log /$git --pretty=oneline
$ git reflog 查看所有歷史命令
7.版本退回
$ git reset --hard HEAD^ HEAD是當前版本,^是前一版本
$git reset --hard 123456 每次提交的sha1碼的開頭一段數字
$ git reset --hard HEAD^^ ^^是前兩個版本
8.撤銷修改
$ git checkout -- ‘filename‘ 從工作區撤銷前面的操作
$git reset HEAD ‘filename‘ 從暫存區撤回到工作區
9.刪除文件
$git rm ‘filename‘ 刪除暫存區的文件
$git commit -m 提交刪除操作
10.將本地庫添加到遠程庫
$ git remote add origin [email protected]:michaelliao/learngit.git
$ git push -u origin master 把本地庫的內容推送到遠程(初次 -u)
$ git push origin master 後續推送
11.從遠程庫克隆到本地
$git clone [email protected]:zhangjpn/learngit.git
12.創建和使用分支
查看分支:git branch
創建分支:git branch <name>
切換分支:git checkout <name>
創建+切換分支:git checkout -b <name>
合並某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
13.分支沖突管理
合並時會出現沖突提示,要手動處理
14.分支管理策略
合並分支默認使用fast-forward模式
$git merge --no-ff -m ‘merge with no-ff‘ dev 以非ff模式合並,保留分支信息,可以繼續在分支上進行叠代
$ git log --graph --pretty=oneline --abbrev-commit 查看分支信息
15.處理bug與工作區現場保留
$ git stash 將當前工作區凍結起來,類似於放入了一個棧中
$ git stash pop 將凍結的工作區放回到當前工作區
$ git stash apply 將凍結的工作區放回到當前工作區,但並不刪除,需要手動刪除,也可以多次apply
$ git stash drop 將凍結的工作區刪掉,
$ git stash list 查看凍結的工作區
16.刪除分支
$ git branch -d xxx
$ git branch -D 強行刪除分支 在沒有合並的情況下
17.分支推送到遠程庫
$ git push origin master 默認遠程倉庫是origin 本地分支是master/dev
$ git push origin dev
18.標簽管理
$ git tag 展示標簽列表
$ git show tagname 展示標簽信息
$ git tag v1.0 在最新的commit上打標簽
$ git tag v1.0 124323123 在某個commit上打標簽
$ git tag -a v1.0 -m ‘xxxx‘ 12343423 在標簽上添加說明
$ git tag -s .... 使用私鑰簽名一個標簽 不要使用pgp簽名用PGP簽名的標簽是不可偽造的,因為可以驗證PGP簽名
$ git tag -d tagname 刪除一個本地標簽
$ git push origin tagname 推送一個標簽到遠程
$ git push origin --tags 推送所有標簽到遠程
$ git push origin :refs/tags/tagname 刪除遠程的一個標簽
18.參與開源項目中
從開源項目fork(分支)到自己倉庫,然後將內容clone到自己本地倉庫。
從自己的賬號pull request請求到開源項目master上
19.git配置設置
$ git config --global color.ui true
20.特殊文件忽略
在工作區根目錄下創建.gitignore文件
在文件中添加需要忽略的特殊文件名
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
強制commit忽略的文件 git add -f filename
$ git check-ignore -v App.class 檢查忽略的文件所對應的規則
21.別名配置(無法起效)
$ git config --global alias.別名 命令
$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/config
當前用戶配置文件/home/username/.gitconfig 對應global
22.搭建git服務器
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000
git使用總結