Git 實用小貼士

Git 是一個免費的開源分佈式版本控制系統, 旨在快速高效地處理從小型到大型項目的全部內容 Git 易於學習 , 佔地面積小, 具備閃電般的快速性能. 它具備Subversion,CVS,Perforce和ClearCase之類的SCM工具, 具備廉價的本地分支, 方便的暫存區域和多個工做流等功能 官方這麼說的!html

原文連接git

😋簡單說

Git 的出現方便了千萬程序員, 提升了開發者之間的協做, 特別相對大型項目而言.程序員

🤟目錄介紹

GYwhiF.png

  • hooks: 存儲鉤子的文件夾
  • logs: 存儲日誌的文件夾
  • refs: 存儲指向各個分支的指針 (SHA-1標識) 文件
  • objects: 存放 git 對象
  • config: 存放各類配置文檔
  • HEAD: 指向當前所在分支的文件路徑, 通常指向 refs 下的某個文件

👍實用小貼士

內建的圖形化 Gitgithub

gitk
複製代碼

彩色的 Git 輸出bash

git config color.ui true
複製代碼

顯示歷史記錄時,每一個提交的信息只顯示一行app

git config format.pretty oneline
複製代碼

Git 版本查看及升級

# 查看當前版本
git --version

# 版本升級
git update
複製代碼

Git 全局配置

git config --global user.name "you username"
git config --global user.email "you email"
複製代碼

git 查看log

git log
# 查看提交記錄

# 顯示簡化版
git log --pretty=oneline
複製代碼

查看本地分支

git branch
* master
# * 標識的是當前所在的分支
複製代碼

查看遠程分支

git branch -r
複製代碼

查看全部分支

git branch -a
複製代碼

本地建立新分支

git branch [branch name]

# 例如
git branch dev
複製代碼

切換到新的分支

git checkout -b [branch name]

# 等於
git branch [branch name]
git checkout [branch name]
複製代碼

將新分支推送到 github / gitlab

git push origin [branch name]

# 例如
git push origin dev
複製代碼

刪除本地分支

git branch -d [branch name]

# 例如
git branch -d dev
複製代碼

刪除遠程分支

git push origin :[branch name]

# 例如
git push origin :dev
複製代碼

合併分支

# 在 dev 分支開發完成以後
# 要合併到 master 
# 提交以後 執行下面命令, 就將 dev 分支合併到了 master
# merge 命令用於合併指定分支到當前分支
git merge dev
複製代碼

解決衝突

# 人生不如意事,十之八九
# 合併分支, 若有衝突, 必須手動解決衝突後提交
Git用<<<<<<<,=======,>>>>>>>標記出不一樣分支的內容

# git log 能夠查看分支合併狀況
git log
# 等於
git log --graph --pretty=oneline --abbrev-commit
複製代碼

Bug 分支

# 在修復 bug 時, 建立 issue-001 分支, 此時須要儲藏當前 dev 工做區的內容
# 執行下面命令, 儲藏工做內容
git stash

# 儲藏以後, 工做區是乾淨的
# 修復完bug以後, 返回 dev 分支
# 此時須要恢復前面的內容

# 查看儲藏內容
git stash list

# 1. 恢復工做區內容
git stash apply			# 這種恢復不會刪除 stash list 內容
# 刪除 stash 內容
git stash drop

# 2. 恢復工做區內容, 並刪除 stash list 的內容
git stash pop


# 能夠屢次 stash , 恢復時, 先用 git stash list 查看, 而後恢復指定的 stash
git stash apply stash@{0}
複製代碼

feature 分支

# 添加一個新功能, 建立並切換到一個新feature分支
git checkout -b feature-vulcan

# 開發完成以後, 儲藏,提交
git add . && git commit -m "開發完畢"

# 切換到 dev 分支
git checkout dev

# 此功能sp上司不用了, 就須要刪除這個分支
git branch -D feature-vulcan
# 大寫 D, 便可刪除
複製代碼

遠程分支(多人合做)

# 查看遠程庫的信息
git remote

# 詳細的信息
git remote -v
origin  git@github.com:username/WorkCentent.git (fetch)
origin  git@github.com:username/WorkCentent.git (push)
# 上面顯示了,能夠抓取和推送的分支. 若是沒有推送權限,就看不到 push 地址

# 推送分支 到 marter
git push origin master

# 同步遠程分支到本地
git checkout -b dev origin/dev
複製代碼

git 版本回退

git log --pretty=oneline
592f634468af11098f9f4b8e0d47bffe0b144642 (HEAD -> master, origin/master) :penguin: 添加 Git 配置
c74abfe70b1170dbd727717ef823a2abdea66bfb :fire: 提交工做內容
b07144b5e7df4b30416c7b460a12d86c61690c0d :tada: :tada: :tada: Typora 首次提交

# git log 查看提交記錄

# HEAD 表示當前本版, 前面一串數字,就是提交id. 要退回上個版本, 就使用:
git reset --hard HEAD^

# 上上個版本使用:
git reset --hard HEAD^^

# 上100個版本使用:
git reset --hard HEAD~100

# 也可使用 提交id 退回到某個版本, 或者返回以前的某個版本記錄
git reset --hard 592f634
複製代碼

git 中的後悔藥

git reflog
# git 會記錄每一次的命令
複製代碼
  • HEAD 指向的版本就是當前版本, 所以, Git 容許咱們在版本的歷史之間穿梭, 使用 git reset --hard commit id
  • 穿梭前, 用 git log 能夠查看提交歷史, 以便肯定回到哪一個版本
  • 要重返將來, 使用 git reflog 查看命令歷史, 以便肯定要回到將來哪一個版本

管理修改

# 查看修改, 工做區與版本庫最新版本的區別
git diff

# 查看某個文件
git diff HEAD -- README.md
複製代碼

撤銷修改

# 提交以前, 丟棄工做區的修改
git checkout -- file
複製代碼

配置快捷名

# git status => git st
git config --gloval alias.st status

# git checkout => git co
git config --global alias.co checkout

# git commit => git cm
git config --global alias.cm commit

# git branch => git br
git config --global alias.br branch

# git log ... => git lg
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 的世界至關龐大, 若是諸位看官想系統學習關於祂的知識. 很是樂意奉上收藏已久的幾個網站, 我想看完你會有所收穫的:ide

  1. 像 Git 那樣思考
  2. 圖解 Git
  3. 廖雪峯老師 Git 教程
  4. Git 簡明指南

人心有一種惱人的傾向, 即只把壓倒他的東西稱做命運 -阿爾貝·加繆 -工具

相關文章
相關標籤/搜索