一催首、git 版本的回退
- git log 查看當(dāng)前git 倉(cāng)庫(kù)提交的版本記錄.
git 的版本號(hào)"8e9c215524339c5305679660fead427136636a9b"是一個(gè)md5 后的密文
- git log 查看當(dāng)前git 倉(cāng)庫(kù)提交的版本記錄.
sc:TestGit yang$ git log
commit 8e9c215524339c5305679660fead427136636a9b
Author: mango <690852195@qq.com>
Date: Sun Dec 31 21:23:10 2017 +0800
第四次提交代碼
commit 50e971dc6a5239efb335e1b2c802e177a4c4e43c
Author: mango <690852195@qq.com>
Date: Sun Dec 31 21:22:39 2017 +0800
第三次提交代碼
commit 041f195c6045b831c26be65a353f3dfbca52ca96
Author: mango <690852195@qq.com>
Date: Sun Dec 31 21:22:01 2017 +0800
第二次提交代碼
commit ca0cf6173f0ceac471fab12c38463ed874b4b8dd
Author: mango <690852195@qq.com>
Date: Sun Dec 31 21:21:09 2017 +0800
第一次提交代碼
- git reset --hard HEAD^ 回退到最近提交的前一個(gè)版本
git reset --hard HEAD^^ 回退到最近提交的前一個(gè)的前一個(gè)版本
- git reset --hard HEAD^ 回退到最近提交的前一個(gè)版本
sc:TestGit yang$ git reset --hard HEAD^
HEAD is now at 50e971d
第三次提交代碼
sc:TestGit yang$ git log
commit 50e971dc6a5239efb335e1b2c802e177a4c4e43c
Author: mango <690852195@qq.com>
Date: Sun Dec 31 21:22:39 2017 +0800
第三次提交代碼
commit 041f195c6045b831c26be65a353f3dfbca52ca96
Author: mango <690852195@qq.com>
Date: Sun Dec 31 21:22:01 2017 +0800
第二次提交代碼
commit ca0cf6173f0ceac471fab12c38463ed874b4b8dd
Author: mango <690852195@qq.com>
Date: Sun Dec 31 21:21:09 2017 +0800
第一次提交代碼
- git reflog 查看git倉(cāng)庫(kù)的歷史版本記錄(包含之前回退的版本號(hào)也可以看見(jiàn))
sc:TestGit yang$ git reflog
50e971d HEAD@{0}: reset: moving to HEAD^
8e9c215 HEAD@{1}: commit: 第四次提交代碼
50e971d HEAD@{2}: commit: 第三次提交代碼
041f195 HEAD@{3}: commit: 第二次提交代碼
ca0cf61 HEAD@{4}: commit (initial): 第一次提交代碼
- git reset --hard 版本號(hào) ,回退的指定版本后(甚至可以是上次刪除的版本,只要是通過(guò) git log 或則 git reflog 能查到的版本號(hào))
sc:TestGit yang$ git reflog
50e971d HEAD@{0}: reset: moving to HEAD^
8e9c215 HEAD@{1}: commit: 第四次提交代碼
50e971d HEAD@{2}: commit: 第三次提交代碼
041f195 HEAD@{3}: commit: 第二次提交代碼
ca0cf61 HEAD@{4}: commit (initial): 第一次提交代碼
sc:TestGit yang$ git reset --hard HEAD^
HEAD is now at 041f195 第二次提交代碼
sc:TestGit yang$ git reset --hard 8e9c215
HEAD is now at 8e9c215 第四次提交代碼
sc:TestGit yang$
二、git 文件的刪除
- git rm 文件路徑 (刪除文件)
sc:TestGit yang$ git rm ViewController.h
fatal: pathspec 'ViewController.h' did not match any files
sc:TestGit yang$ git rm TestGit/ViewController.h rm 'TestGit/ViewController.h'
sc:TestGit yang$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: TestGit/ViewController.h
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: TestGit.xcodeproj/project.xcworkspace/xcuserdata/yang.xcuserdatad/UserInterfaceState.xcuserstate
三笙蒙、git branch 分支
- git branch 查看git 的所有的分支分支
sc:TestGit yang$ git branch
* master
- git branch v1.0 從當(dāng)前的分支創(chuàng)建一個(gè)新的分支(v1.0 是新創(chuàng)建的分支名稱(chēng))
sc:TestGit yang$ git branch
* master
sc:TestGit yang$ git branch v1.0
sc:TestGit yang$ git branch
* master // * 表示當(dāng)前正在執(zhí)行的分支
v1.0
- git check v1.0 切換分支 (v1.0 要切換的分支名稱(chēng))
sc:TestGit yang$ git branch
* master
v1.0
v2.0
sc:TestGit yang$ git checkout v1.0
Switched to branch 'v1.0'
sc:TestGit yang$ git branch
master
* v1.0 // * 表示當(dāng)前正在執(zhí)行的分支
v2.0
- git merge 合并分支
sc:TestGit yang$ git merge v2.0
Already up-to-date.
- git branch -d v1.0 刪除分支(v1.0 將要?jiǎng)h除的分支的名稱(chēng))
sc:TestGit yang$ git branch
master
* v1.0
v2.0
sc:TestGit yang$
sc:TestGit yang$
sc:TestGit yang$ git branch -d v2.0
Deleted branch v2.0 (was 8e9c215).
sc:TestGit yang$ git branch
master
* v1.0
說(shuō)明: git branch -d v1.0 不能刪除當(dāng)前正在執(zhí)行的分支,如果要?jiǎng)h除當(dāng)前的分支,請(qǐng)先切換出當(dāng)前分支在移除.
Git 簡(jiǎn)單總結(jié)(一) http://www.reibang.com/p/4a63323fc55b