Git基础教程(二)
生活随笔
收集整理的這篇文章主要介紹了
Git基础教程(二)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
繼續(xù)上篇Git基礎(chǔ)教程(一),在開篇之前,先回顧一下上篇中的基本命令。 1 配置命令:git config --global *
2 版本庫初始化:git init
3 向版本庫添加文件:git add *
4 提交文件:git commit *
5 查看狀態(tài):git status
6 查看修改詳情:git diff *
7 查看日志:git log (*)
8 恢復(fù)版本:git reset *
9 撤銷:git checkout -- *
10 刪除:git rm *
11
12 配置github:ssh-keygen -t rsa -C "******@163.com"
13 添加遠(yuǎn)程庫:git remote add *
14 調(diào)試:ssh -T -v git@github.com
15 查詢遠(yuǎn)程庫:git remote -v
16 刪除遠(yuǎn)程庫文件:
17 git rm -f gitReadme.md
18 git commit -m "delete file Gitreadme.md" --先刪除本地庫
19 git push origin master
20 刪除遠(yuǎn)程庫:git remote remove origin
21 克隆遠(yuǎn)程庫:git clone *
? ? 小結(jié):往遠(yuǎn)程庫添加一個(gè)文件的步驟如下: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git add readme.md 3 4 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 5 $ git commit -m "add a reame.md file." 6 [master b6fc772] add a reame.md file. 7 1 file changed,17 insertions(+) 8 create mode 100644 readme.md 9 10 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 11 $ git pull --rebase origin master 12 remote:Counting objects:2,done. 13 remote:Compressing objects:100%(2/2),done. 14 remote:Total2(delta 1), reused 0(delta 0), pack-reused 0 15 Unpacking objects:100%(2/2),done. 16 From github.com:zhangbc/dataStructure 17 * branch master -> FETCH_HEAD 18 6fb284c..8366817 master -> origin/master 19 First, rewinding head to replay your work on top of it... 20 Applying: add a reame.md file. 21 Applying:數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記 by zhangbc 22 Applying: add a reame.md file. 23 24 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 25 $ git push origin master 26 Counting objects:6,done. 27 Delta compression using up to 4 threads. 28 Compressing objects:100%(6/6),done. 29 Writing objects:100%(6/6),604 bytes |0 bytes/s,done. 30 Total6(delta 4), reused 0(delta 0) 31 remote:Resolving deltas:100%(4/4), completed with 2local objects. 32 To github.com:zhangbc/dataStructure.git 33 8366817..da420b4 master -> master ? ? ?4)解決沖突 在分支dev提交gitReadme.md: zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) $ cat gitReadme.md # gitReadme # ---------- Creating a new branch is quick and simple.(Dev)zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) $ git add gitReadme.mdzhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) $ git commit -m "Add gitReadme.md" [dev 366500d]Add gitReadme.md 1 file changed,4 insertions(+) create mode 100644 gitReadme.md 切換到主分支master上: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git checkout master 3 Switched to branch 'master' 4 M readme.md 5 Your branch is ahead of 'origin/master' by 3 commits. 6 (use "git push" to publish your local commits) 7 8 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 9 $ 在分支master修改并提交gitReadme.md: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ cat gitReadme.md 3 # gitReadme # 4 ---------- 5 Change a main branch of master is quick and simple.(Master) 6 7 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 8 $ git add gitReadme.md 9 10 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 11 $ git commit -m "Add gitReadme.md" 12 [master b466603]Add gitReadme.md 13 1 file changed,4 insertions(+) 14 create mode 100644 gitReadme.md
? ? ? ??Git還提供了一個(gè)stash功能,可以把當(dāng)前工作現(xiàn)場“儲(chǔ)藏”起來,等以后恢復(fù)現(xiàn)場后繼續(xù)工作。 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git branch 3 * dev 4 master 5 6 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 7 $ git status 8 On branch dev 9 Changes not staged for commit: 10 (use "git add <file>..." to update what will be committed) 11 (use "git checkout -- <file>..." to discard changes in working directory) 12 13 modified: readme.md 14 15 no changes added to commit (use "git add" and/or "git commit -a") 16 17 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 18 $ git stash 19 Saved working directory and index state WIP on dev:49afeabAdd merge with --no-ff. 20 HEAD is now at 49afeabAdd merge with --no-ff. 21 22 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 23 $ git checkout master 24 Switched to branch 'master' 25 Your branch is ahead of 'origin/master' by 10 commits. 26 (use "git push" to publish your local commits) 27 28 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 29 $ git checkout -b issue-101 30 Switched to a new branch 'issue-101' 31 32 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (issue-101) 33 $ git add readme.md 34 35 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (issue-101) 36 $ git commit -m "fix bug 101" 37 On branch issue-101 38 nothing to commit, working tree clean 39 40 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (issue-101) 41 $ git checkout master 42 Switched to branch 'master' 43 Your branch is ahead of 'origin/master' by 10 commits. 44 (use "git push" to publish your local commits) 45 46 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 47 $ git merge --no-ff -m "merge bug fix 101" issue-101 48 Already up-to-date. 49 50 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 51 $ git branch -d issue-101 52 Deleted branch issue-101(was c182956). 53 54 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 55 $ git checkout dev 56 Switched to branch 'dev' 57 58 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 59 $ git status 60 On branch dev 61 nothing to commit, working tree clean 62 63 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 64 $ git stash list 65 stash@{0}: WIP on dev:49afeabAdd merge with --no-ff. 66 67 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 68 $ git stash pop 69 On branch dev 70 Changes not staged for commit: 71 (use "git add <file>..." to update what will be committed) 72 (use "git checkout -- <file>..." to discard changes in working directory) 73 74 modified: readme.md 75 76 no changes added to commit (use "git add" and/or "git commit -a") 77 Dropped refs/stash@{0}(ab63aa01e37e908d49ab921656884b29b17aeac1) 78 79 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 80 $ git stash list 81 82 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev)
查看遠(yuǎn)程庫信息: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git remote 3 origin 4 5 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 6 $ git remote -v 7 origin git@github.com:zhangbc/dataStructure.git (fetch) 8 origin git@github.com:zhangbc/dataStructure.git (push) 推送分支: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git push origin dev 3 Counting objects:20,done. 4 Delta compression using up to 4 threads. 5 Compressing objects:100%(20/20),done. 6 Writing objects:100%(20/20),1.81KiB|0 bytes/s,done. 7 Total20(delta 12), reused 0(delta 0) 8 remote:Resolving deltas:100%(12/12), completed with 2local objects. 9 To github.com:zhangbc/dataStructure.git 10 *[new branch] dev -> dev 推送原則: ? ? ? ? ?(1)master分支是主分支,因此要時(shí)刻與遠(yuǎn)程同步; (2)dev分支是開發(fā)分支,團(tuán)隊(duì)所有成員都需要在上面工作,所以也需要與遠(yuǎn)程同步; (3)bug分支只用于在本地修復(fù)bug; (4)feature分支是否推到遠(yuǎn)程,取決于合作開發(fā)。
?
(續(xù))4,分支管理
? ? 1)查看當(dāng)前分支 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git branch 3 * master ? ? 2)創(chuàng)建并切換 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git branch dev 3 4 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 5 $ git checkout dev 6 Switched to branch 'dev' ? ? ? ?等價(jià)語句: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git checkout -b working 3 Switched to a new branch 'working' ? ? ? ? ?git branch命令會(huì)列出所有分支,當(dāng)前分支前面會(huì)標(biāo)一個(gè)*號(hào)。 ? ? ? ? 3)合并分支工作成果 在working分支添加一個(gè)readme.md 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (working) 2 $ git add readme.md 3 4 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (working) 5 $ git commit -m 'add readme.md' 6 [working 59dc0fe] add readme.md 7 1 file changed,16 insertions(+) 8 create mode 100644 readme.md 9 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (working) 2 $ cat readme.md 3 ---------- 4 # 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記 # 5 >**本筆記來自學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)與算法.嚴(yán)蔚敏(48集)》視頻,[數(shù)據(jù)結(jié)構(gòu)(C語言版)].嚴(yán)蔚敏_吳偉民.掃描版.pdf。** 6 7 8 ---------- 9 # 第01章 緒論 # 10 ## 學(xué)習(xí)要點(diǎn) ## 11 1.熟悉各名詞、術(shù)語的含義,掌握基本概念; 12 2.理解算法五個(gè)要素的確切含義; 13 3.掌握計(jì)算語句頻度和估算算法時(shí)間復(fù)雜度的方法。 14 ## 代碼塊 ## 15 -矩陣乘法 16 -選擇排序 17 -冒泡排序 18 19 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 20 $ cat readme.md 21 cat: readme.md:No such file or directory 把working上的工作成果合并到master上來: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git merge working 3 Updating b460b3f..59dc0fe 4 Fast-forward 5 readme.md |16++++++++++++++++ 6 1 file changed,16 insertions(+) 7 create mode 100644 readme.md 刪除分支: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git branch -d dev 3 Deleted branch dev (was b460b3f). 強(qiáng)行刪除分支: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git branch -d working 3 error:The branch 'working' is not fully merged. 4 If you are sure you want to delete it, run 'git branch -D working'.?
遇到問題如下: 分析: ? ?任務(wù)未完成。解決: ?? ? 小結(jié):往遠(yuǎn)程庫添加一個(gè)文件的步驟如下: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git add readme.md 3 4 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 5 $ git commit -m "add a reame.md file." 6 [master b6fc772] add a reame.md file. 7 1 file changed,17 insertions(+) 8 create mode 100644 readme.md 9 10 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 11 $ git pull --rebase origin master 12 remote:Counting objects:2,done. 13 remote:Compressing objects:100%(2/2),done. 14 remote:Total2(delta 1), reused 0(delta 0), pack-reused 0 15 Unpacking objects:100%(2/2),done. 16 From github.com:zhangbc/dataStructure 17 * branch master -> FETCH_HEAD 18 6fb284c..8366817 master -> origin/master 19 First, rewinding head to replay your work on top of it... 20 Applying: add a reame.md file. 21 Applying:數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記 by zhangbc 22 Applying: add a reame.md file. 23 24 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 25 $ git push origin master 26 Counting objects:6,done. 27 Delta compression using up to 4 threads. 28 Compressing objects:100%(6/6),done. 29 Writing objects:100%(6/6),604 bytes |0 bytes/s,done. 30 Total6(delta 4), reused 0(delta 0) 31 remote:Resolving deltas:100%(4/4), completed with 2local objects. 32 To github.com:zhangbc/dataStructure.git 33 8366817..da420b4 master -> master ? ? ?4)解決沖突 在分支dev提交gitReadme.md: zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) $ cat gitReadme.md # gitReadme # ---------- Creating a new branch is quick and simple.(Dev)zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) $ git add gitReadme.mdzhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) $ git commit -m "Add gitReadme.md" [dev 366500d]Add gitReadme.md 1 file changed,4 insertions(+) create mode 100644 gitReadme.md 切換到主分支master上: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git checkout master 3 Switched to branch 'master' 4 M readme.md 5 Your branch is ahead of 'origin/master' by 3 commits. 6 (use "git push" to publish your local commits) 7 8 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 9 $ 在分支master修改并提交gitReadme.md: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ cat gitReadme.md 3 # gitReadme # 4 ---------- 5 Change a main branch of master is quick and simple.(Master) 6 7 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 8 $ git add gitReadme.md 9 10 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 11 $ git commit -m "Add gitReadme.md" 12 [master b466603]Add gitReadme.md 13 1 file changed,4 insertions(+) 14 create mode 100644 gitReadme.md
?
?合并: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git merge dev 3 Auto-merging gitReadme.md 4 CONFLICT (add/add):Merge conflict in gitReadme.md 5 Automatic merge failed; fix conflicts and then commit the result. ? 查看文檔: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master|MERGING) 2 $ cat gitReadme.md 3 # gitReadme # 4 5 ---------- 6 <<<<<<< HEAD 7 Change a main branch of master is quick and simple.(Master) 8 ======= 9 10 Creating a new branch is quick and simple.(Dev) 11 >>>>>>> dev 手動(dòng)解決: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master|MERGING) 2 $ vi gitReadme.md 3 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master|MERGING) 4 $ cat gitReadme.md 5 # gitReadme # 6 ---------- 7 8 Change a main branch of master is quick and simple.(Master) 9 ---------- 10 Creating a new branch is quick and simple.(Dev) 11 12 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master|MERGING) 13 $ git add gitReadme.md 14 15 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master|MERGING) 16 $ git commit -m "Add gitReadme.md confict fixed." 17 [master 8e59a4d]Add gitReadme.md confict fixed. 18 19 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 20 $查看日志:
1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git log --graph --pretty=oneline --abbrev-commit ? ? ?5)分支管理策略 ? ? ? ? ? ?通常,合并分支時(shí),如果可能,Git會(huì)用Fast forward模式,但這種模式下,刪除分支后,會(huì)丟掉分支信息。如果要強(qiáng)制禁用Fast forward模式,Git就會(huì)在merge時(shí)生成一個(gè)新的commit,這樣,從分支歷史上就可以看出分支信息。? 創(chuàng)建分支dev并切換,添加文件: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git checkout -b dev 3 Switched to a new branch 'dev' 4 5 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 6 $ cat gitReadme.md 7 # gitReadme # 8 ---------- 9 Creating a new branch with --no-ff is quick and simple.(Dev) 10 11 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 12 $ git add gitReadme.md 13 14 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 15 $ git commit -m 'Add merge with --no-ff.' 16 [dev 49afeab]Add merge with --no-ff. 17 1 file changed,1 insertion(+),4 deletions(-) 切換到主分支master上,并合并: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git checkout master 3 Switched to branch 'master' 4 Your branch is ahead of 'origin/master' by 6 commits. 5 (use "git push" to publish your local commits) 6 7 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 8 $ git merge --no-ff -m "Merge with no-ff." dev 9 Merge made by the 'recursive' strategy. 10 gitReadme.md |5+---- 11 1 file changed,1 insertion(+),4 deletions(-) 查看日志: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git log --graph --pretty=oneline --abbrev-commit?
? ? ?在實(shí)際開發(fā)中,我們應(yīng)該按照幾個(gè)基本原則進(jìn)行分支管理: 首先,master分支應(yīng)該是非常穩(wěn)定的,也就是僅用來發(fā)布新版本,平時(shí)不能在上面干活; 干活都在dev分支上,也就是說,dev分支是不穩(wěn)定的,到某個(gè)時(shí)候,比如1.0版本發(fā)布時(shí),再把dev分支合并到master上,在master分支發(fā)布1.0版本; 每個(gè)人都在dev分支上干活,每個(gè)人都有自己的分支,時(shí)不時(shí)地往dev分支上合并即可。 ? 5,多人協(xié)作 ? ? 1)bug分支? ? ? ??Git還提供了一個(gè)stash功能,可以把當(dāng)前工作現(xiàn)場“儲(chǔ)藏”起來,等以后恢復(fù)現(xiàn)場后繼續(xù)工作。 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git branch 3 * dev 4 master 5 6 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 7 $ git status 8 On branch dev 9 Changes not staged for commit: 10 (use "git add <file>..." to update what will be committed) 11 (use "git checkout -- <file>..." to discard changes in working directory) 12 13 modified: readme.md 14 15 no changes added to commit (use "git add" and/or "git commit -a") 16 17 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 18 $ git stash 19 Saved working directory and index state WIP on dev:49afeabAdd merge with --no-ff. 20 HEAD is now at 49afeabAdd merge with --no-ff. 21 22 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 23 $ git checkout master 24 Switched to branch 'master' 25 Your branch is ahead of 'origin/master' by 10 commits. 26 (use "git push" to publish your local commits) 27 28 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 29 $ git checkout -b issue-101 30 Switched to a new branch 'issue-101' 31 32 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (issue-101) 33 $ git add readme.md 34 35 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (issue-101) 36 $ git commit -m "fix bug 101" 37 On branch issue-101 38 nothing to commit, working tree clean 39 40 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (issue-101) 41 $ git checkout master 42 Switched to branch 'master' 43 Your branch is ahead of 'origin/master' by 10 commits. 44 (use "git push" to publish your local commits) 45 46 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 47 $ git merge --no-ff -m "merge bug fix 101" issue-101 48 Already up-to-date. 49 50 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 51 $ git branch -d issue-101 52 Deleted branch issue-101(was c182956). 53 54 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 55 $ git checkout dev 56 Switched to branch 'dev' 57 58 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 59 $ git status 60 On branch dev 61 nothing to commit, working tree clean 62 63 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 64 $ git stash list 65 stash@{0}: WIP on dev:49afeabAdd merge with --no-ff. 66 67 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 68 $ git stash pop 69 On branch dev 70 Changes not staged for commit: 71 (use "git add <file>..." to update what will be committed) 72 (use "git checkout -- <file>..." to discard changes in working directory) 73 74 modified: readme.md 75 76 no changes added to commit (use "git add" and/or "git commit -a") 77 Dropped refs/stash@{0}(ab63aa01e37e908d49ab921656884b29b17aeac1) 78 79 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 80 $ git stash list 81 82 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev)
?? ? 2)feature分支
? ? ? ?開發(fā)一個(gè)新feature,最好新建一個(gè)分支;如果要丟棄一個(gè)沒有被合并過的分支,可以通過git branch -D <name>強(qiáng)行刪除。 ? ? 3)多人協(xié)作查看遠(yuǎn)程庫信息: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git remote 3 origin 4 5 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 6 $ git remote -v 7 origin git@github.com:zhangbc/dataStructure.git (fetch) 8 origin git@github.com:zhangbc/dataStructure.git (push) 推送分支: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git push origin dev 3 Counting objects:20,done. 4 Delta compression using up to 4 threads. 5 Compressing objects:100%(20/20),done. 6 Writing objects:100%(20/20),1.81KiB|0 bytes/s,done. 7 Total20(delta 12), reused 0(delta 0) 8 remote:Resolving deltas:100%(12/12), completed with 2local objects. 9 To github.com:zhangbc/dataStructure.git 10 *[new branch] dev -> dev 推送原則: ? ? ? ? ?(1)master分支是主分支,因此要時(shí)刻與遠(yuǎn)程同步; (2)dev分支是開發(fā)分支,團(tuán)隊(duì)所有成員都需要在上面工作,所以也需要與遠(yuǎn)程同步; (3)bug分支只用于在本地修復(fù)bug; (4)feature分支是否推到遠(yuǎn)程,取決于合作開發(fā)。
抓取分支:
1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (dev) 2 $ git clone git@github.com:zhangbc/PythonWorking.git 3 Cloning into 'PythonWorking'... 4 remote:Counting objects:90,done. 5 remote:Compressing objects:100%(2/2),done. 6 remote:Total90(delta 0), reused 0(delta 0), pack-reused 88 7 Receiving objects:100%(90/90),18.55KiB|6.00KiB/s,done. 8 Resolving deltas:100%(47/47),done.?
6,標(biāo)簽管理 ? 發(fā)布一個(gè)版本時(shí),我們通常先在版本庫中打一個(gè)標(biāo)簽(tag),這樣,就唯一確定了打標(biāo)簽時(shí)刻的版本。將來無論什么時(shí)候,取某個(gè)標(biāo)簽的版本,就是把那個(gè)打標(biāo)簽的時(shí)刻的歷史版本取出來。所以,標(biāo)簽也是版本庫的一個(gè)快照。 創(chuàng)建標(biāo)簽: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git tag V1.0 查看標(biāo)簽: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git tag 3 V1.0 補(bǔ)打標(biāo)簽,先查找commit id: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git log --pretty=oneline --abbrev-commit 3 c182956 merge bug fix 101 4 2fd9cb4 fix bug 101 5 ffb5db6 Merge with no-ff. 6 49afeabAdd merge with --no-ff. 7 8e59a4dAdd gitReadme.md confict fixed. 8 b466603 Add gitReadme.md 9 366500dAdd gitReadme.md 10 63b712aMerge branch 'dev' 11 4d28e6d an example 12 6da4fcd an example 13 da420b4 add a reame.md file. 14 cfce135 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記 by zhangbc 15 5433fd9 add a reame.md file. 16 8366817Delete README.md 17 6fb284c數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記 by zhangbc 18 ac69d7d 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記 by zhangbc 19 bde6080 add readme.md 20 39013c9Create README.md 21 b460b3f 數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)筆記 by zhangbc 22 23 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 24 $ git tag v0.1 da420b4?查看標(biāo)簽詳情:
1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git show V1.0 3 commit c182956d8cf80b393b18027cc6bb010481aeae40 4 Merge: ffb5db6 2fd9cb4 5 Author: zhangbc <zhangbochengcheng189@163.com> 6 Date:MonMar616:47:202017+0800 7 8 merge bug fix 101 創(chuàng)建帶有說明的標(biāo)簽: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git tag -a V0.2-m "Version 0.1 released"5433fd9 ?另外,創(chuàng)建帶私鑰簽名的標(biāo)簽(配置略過): 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git tag -s -a V0.3-m "Version 0.3 released" 刪除標(biāo)簽: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git tag -d show 3 Deleted tag 'show'(was c182956) 推送標(biāo)簽: 1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git push origin V0.2 3 Counting objects:1,done. 4 Writing objects:100%(1/1),168 bytes |0 bytes/s,done. 5 Total1(delta 0), reused 0(delta 0) 6 To github.com:zhangbc/dataStructure.git 7 *[new tag] V0.2-> V0.2 8 9 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 10 $ git push origin --tag 11 Total0(delta 0), reused 0(delta 0) 12 To github.com:zhangbc/dataStructure.git 13 *[new tag] V1.0-> V1.0 14 *[new tag] v0.1-> v0.1刪除遠(yuǎn)程庫標(biāo)簽:
1 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 2 $ git tag -d V0.2 3 Deleted tag 'V0.2'(was 30a96b6) 4 5 zhangbc@working MINGW64 /d/BaiduYunDownload/dataStructure (master) 6 $ git push origin :refs/tags/V0.2 7 To github.com:zhangbc/dataStructure.git 8 -[deleted]V0.2 7,自定義Git 讓Git顯示不同的顏色: 1 Administrator@WIN-9S4D59CISAA MINGW64 ~(master) 2 $ git config --global color.ui true 忽略特殊文件:https://github.com/github/gitignore ????????在Git工作區(qū)的根目錄下創(chuàng)建一個(gè)特殊的.gitignore文件,然后把要忽略的文件名填進(jìn)去,Git就會(huì)自動(dòng)忽略這些文件。 配置別名: 1 Administrator@WIN-9S4D59CISAA MINGW64 /e/DataStructure/dataStructure (master) 2 $ git config --global alias.st status 3 4 Administrator@WIN-9S4D59CISAA MINGW64 /e/DataStructure/dataStructure (master) 5 $ git st 6 On branch master 7 nothing to commit, working tree clean 1 Administrator@WIN-9S4D59CISAA MINGW64 /e/DataStructure/dataStructure (master) 2 $ 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" 3 4 Administrator@WIN-9S4D59CISAA MINGW64 /e/DataStructure/dataStructure (master) 5 $ git lg 6 *53aad04-(HEAD -> master, origin/master) C++ ignore file.(21 minutes ago)<zhangbc> 7 * c28d67e -本筆記系統(tǒng)說明文件 by zhangbc (35 minutes ago)<zhangbc> 8 * b797aab - delete file readmeBug.md (38 minutes ago)<zhangbc> 9 *20828c2- delete file Gitreadme.md (44 minutes ago)<zhangbc>? ??????配置Git的時(shí)候,加上--global是針對當(dāng)前用戶起作用的,如果不加,那只針對當(dāng)前倉庫起作用。
每個(gè)倉庫的配置文件: Administrator@WIN-9S4D59CISAA MINGW64 /e/DataStructure/dataStructure (master) $ cat .git/config [core]repositoryformatversion =0filemode = falsebare = falselogallrefupdates = truesymlinks = falseignorecase = true [remote "origin"]url = git@github.com:zhangbc/dataStructure.gitfetch =+refs/heads/*:refs/remotes/origin/* 當(dāng)前用戶的配置文件: 1 Administrator@WIN-9S4D59CISAA MINGW64 ~(master) 2 $ cat .gitconfig 3 [user] 4 name = ***** 5 email = **********@163.com 6 [color] 7 ui = true 8 [alias] 9 st = status 10 g = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'--abbrev-commit?
? ? 最后,Git基礎(chǔ)入門知識(shí),到此已基本完成,歡迎各位拍磚!
轉(zhuǎn)載于:https://www.cnblogs.com/zhangbc/p/6530010.html
總結(jié)
以上是生活随笔為你收集整理的Git基础教程(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序安卓机使用uploadfile
- 下一篇: iosttableViewCell右侧的