1. 程式人生 > >git使用總結

git使用總結

ash war with 搭建 git服務器 quest 配置文件 username 下使用

一、安裝

$ 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使用總結