Git 全方位

本地倉庫

$ git checkout -- readme.txt

1.修改后未放至暫存區,回到和版本庫一樣的狀態

2.修改后添加至緩存區,回到添加前的狀態

總: 回到最近得 git add 或者 git commit 時的狀態

$ git reset HEAD readme.txt

將緩存區的修改撤銷(unstage)

$ git rm readme.txt

從版本庫刪除

遠程倉庫

$ ssh-keygen -t rsa -C "email@example.com"
$ cd ~/.ssh/id_rsa.pub
# 在 github / 個人 / SSH / Add SSH 填入密鑰 

本地倉庫與Github 倉庫之間通過 SSH 加密

# origin 遠程庫名
# server-name 采用 github 則為 github.com
# path 用戶名
# repo-name 倉庫名
$ git remote add origin git@server-name:path/repo-name.git

在本地倉庫里添加遠程庫

$ git clone git@server-name:path/repo-name.git

克隆遠程庫

# -u 關聯相應分支
$ git push -u origin master

把本地庫的所有內容推送到遠程庫

分支管理

HEAD指針不是指向提交,而是指向 master ,master 指向提交


# -b 創建并切換
$ git checkout -b dev

# 等價于兩條
$ git branch dev
$ git checkout dev

創建并切換分支

# 當前分支 master
$ git merge dev

合并指定分支到當前分支

$ git branch -d dev

刪除本地分支

$ git push --delete origin dev

刪除遠程分支

$ git branch -m develop dev

本地分支更名

沖突

人生八九不如意

$ git checkout -b feature1

# 修改 README.md 
# Creating a new branch is quick AND simple.
$ git add README.md
$ git commit -m "AND simple"

$ git checkout master

# 修改 README.md 
# Creating a new branch is quick & simple.
$ git add README.txt
git commit -m "& simple"

# 生成不同的兩條線
# 目前在 master 分支上
$ git merge feature1

# CONFLICT!!!!!!!!!! 沖突
# vi README.md
$ git add README.md
$ git commit -m "conflict fixed"

沖突合并,修改

分支管理策略

$ git checkout -b dev
$ vi README.md
# ...
$ git add README.md
$ git commit -m "add merge"

# 切回 master
$ git checkout master

# --no-ff no Fast forward
$ git merge --no-ff -m "merge with no-ff" dev

默認使用 Fast forward 會丟掉分支消息,強制禁用增加參數 --no-ff

$ git log 00graph --pretty=oneline --abbrev-commit

用圖形查看分支歷史

分支策略

  • master 非常穩定、用來發布新版本
  • 在 dev 上開發
  • 每個人有自己的分支

Bug 分支

$ git stash

暫存工作現場

$ git checkout master
$ git branch -b issue-1
$ git add README.txt
$ git commit -m "fix bug 1"
$ git checkout master
$ git merge --no--ff -m "merged bug fix 1" issue-1
$ git branch -d issue-1

bug 修復

$ git checkout dev
$ git git stash pop

恢復現場

$ git stash list

查看暫存列表

$ git stash apply stash@{0}

恢復指定 stash

多人協作

隊友操作

$ git clone git@github.com/KayorLien/lutu.git

$ git checkout -b dev orgin/dev
$ git add hello.js
$ git commit -m "add an comma"

自己操作

$ git add hello.js
$ git commit -m "Add coding: utf-8"

# REJECTED
$ git branch --set-upstream-to origin origin/kayor
$ git pull

# 解決沖突
$ git commit -m "merge & fix hello.js"

標簽管理

# 打標簽
# commit id: 283745
$ git tag -a v0.1 -m "version 0.1 released" [commit id]

$ git push origin tagname

# 推送所有未推過的標簽
$ git push origin --tags

Git Cheat Sheet
Git Cheat Sheet
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,721評論 9 163
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,713評論 4 54
  • 本文參加#感悟三下鄉,青春筑夢行#活動,本人承諾,文章內容為原創,且未在其他平臺發表過。 早上起床稍稍...
    媛Unique閱讀 154評論 0 1
  • 幸福的教學生活還有多遠 雪 竹 幸福的教學生活離我們還有多遠的距...
    xuezhu766閱讀 244評論 0 0
  • 我默默地走 一步兩步 笑著看遠方的天空 我要去尋找一樣東西 她經常出現在我夢中 笑臉?月亮?還是星空? 我搖搖頭 ...
    周三臨閱讀 146評論 0 2