1. 程式人生 > >git安裝,配置和使用

git安裝,配置和使用

查看 -name 隱藏 user 遠程倉庫 color read 現場 branch

基礎操作

  • 需要一個文件夾作為版本庫
  • 建立倉庫git init
  • 添加文件git add filename
  • 提交文件git commit -m "info"
  • 查看日誌git log//—pretty=oneline

版本控制

  • 版本回退git reset —hard HEAD^
    HEAD^:上一個版本 HEAD~100:100個版本之前 commit_id:回退到該ID對應版本
  • 查看命令日誌git reflog
  • 查看狀態git status
  • 比較不同git diff HEAD — readme.txt
  • 撤銷/丟棄在工作區的修改git checkout -- <file>
    ps: 如果沒有放到緩存區,就回退到和版本庫一樣,如果放到了緩存區,回退到緩存區
  • 把緩存區文件放回工作區git reset HEAD <file>
  • 從版本庫中刪除該文件,那就用命令git rm刪掉,並且提交git commit -m "delete a file"
  • 刪錯恢復git checkout — test.txt

推送到遠程倉庫

  • 關聯遠程倉庫git remote add origin [email protected]:server-name:path/repo-name.git
  • 把本地庫的當前master分支內容推到遠程git push -u origin master
  • 本地提交後,推送到遠程githubgit push origin master

從遠程庫克隆

git clone [email protected]:username/repo-name.git

本地庫分支管理

  • 查看分支:git branch
  • 創建分支:git branch <name>
  • 切換分支:git checkout <name>
  • 創建+切換分支:git checkout -b <name>
  • 合並某分支到當前分支:git merge <name>
  • 刪除分支:git branch -d <name>
    強行刪除一個沒有被合並過的分支:git branch -D <name>
  • 分支可視化:
  • git log --graph
    顯示分支合並圖
  • git log --graph --pretty=oneline --abbrev-commit更簡略
  • 合並分支時:
  • 加上--no-ff參數用普通模式合並,合並後的歷史有分支,能看出來曾經做過合並
  • 加上fast forward看不出來曾經做過合並,歷史分支會被丟棄
  • 保存工作現場:把工作現場git stash,離開,再git stash pop,回到工作現場
  • 查看工作現場:git stash list

遠程庫分支管理

  • 查看遠程庫信息:git remote -v
  • 從本地推送分支:git push origin branch-name
    如果推送失敗,先用git pull更新版本
  • 在本地創建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name(本地和遠程分支的名稱最好一致)
  • 建立本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name
  • 從遠程抓取分支:git pull,如果有沖突,要先處理沖突。

使用標簽

  • 新建標簽:git tag <name>,默認為HEAD,也可以指定一個commit id;
  • 制定標簽信息:git tag -a <tagname> -m "blablabla..."
  • 用PGP簽名標簽:git tag -s <tagname> -m "blablabla..."
  • 查看所有標簽:git tag
  • 推送一個本地標簽:git push origin <tagname>
  • 推送全部未推送過的本地標簽:git push origin --tags
  • 刪除一個本地標簽:git tag -d <tagname>
  • 刪除一個遠程標簽:git push origin :refs/tags/<tagname>

配置需要忽略的文件

  • 忽略某些文件時,需要編寫.gitignore文件
  • .gitignore文件本身要放到版本庫裏,並且可以對.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” Git lg
技術分享圖片

git的配置文件

  • 配置Git的時候,加上--global是針對當前用戶起作用的,如果不加,那只針對當前的倉庫起作用。
  • 每個倉庫的Git配置文件:.git/config文件中
  • 當前用戶的Git配置文件:用戶主目錄下的一個隱藏文件.gitconfig

git安裝,配置和使用