SVN:集中式版本控制
Git:分布式版本控制
git官網:
git淘寶鏡像地址:
工作流程:工作區 ---> 暫存區 ---> 本地倉庫 ---> 遠程倉庫
二、Git環境配置
1 #查看[全局]配置: 2 git config [--global] --list
1 #設置提交代碼時的用戶名和郵箱: 2 git config [--global] user.name "[name]" 3 git config [--global] user.email "[email address]"
1 #重置用戶名和密碼 2 git config --replace-all user.name "[name]" 3 git config --replace-all user.email "[email address]"
三、Git常用命令
1 #在當前目錄新建一個Git代碼庫 2 git init 3 4 #下載一個項目和它的整個代碼史 5 git clone [url]
2、增加/刪除文件
#添加指定文件到暫存區 git add [file1] [file2] ... #添加指定目錄到暫存區,包括子目錄 git add [dir] #添加當前目錄的所有文件到暫存區 git add . --------------------------------------------- #刪除工作區文件,並將這次刪除放入暫存區 git rm [file1] [file2] ...
3、代碼提交
1 #提交暫存區到倉庫區 2 git commit -m "[message]" 3 4 #提交暫存區的指定文件到倉庫區 5 git commit [file1] [file2] ... -m "[message]"
4、分支
1 #查看本地所有分支 2 git branch 3 4 #查看遠程所有分支 5 git branch -r 6 7 #查看所有分支(本地分支和遠程分支) 8 git branch -a 9 10 #查看每一個分支的最后一次提交 11 git branch -v 12 13 #新建一個分支(但仍然留在當前分支) 14 git branch [branch-name] 15 16 #切換到指定分支 17 git checkout [branch-name] 18 19 #新建一個分支並切換到該分支(組合用法) 20 git checkout -b [branch-name] 21 22 #拉取遠程分支並在本地創建分支(注:遠程分支前加origin) 23 git checkout -b [local_branch] origin/[remote_branch] 24 25 #建立本地倉庫(dev)和遠程倉庫(dev)的鏈接,這樣代碼才能提交上去 26 git branch --set-upstream-to=origin/dev 27 #取消對master的跟蹤 28 git branch --unset-upstream master 29 30 #合並指定分支(branch-name)到當前分支(一般在master上操作) 31 git merge [branch-name] 32 33 #刪除本地分支 34 git branch -d [branch-name] 35 36 #刪除遠程分支(寫法一),危險操作 37 git branch -r -d [遠程倉庫別名/遠程分支名] 38 #刪除遠程分支(寫法二) 39 git push origin --delete [branch-name] 40 #刪除遠程分支(寫法二簡寫) 41 git push origin :[remote_branch] 42 43 #重命名分支:如果newbranch名字已經存在,則需要使用-M強制重命名,否則,使用-m進行重命名 44 git branch -m|-M [oldbranch-name] [newbranch-name]
5、查看信息
1 #查看所有文件狀態 2 git status 3 4 #查看指定文件狀態 5 git status [filename]
6、遠程同步
1 #下載遠程倉庫的所有變動 2 git fetch <遠程倉庫別名> 3 4 #顯示所有遠程倉庫 5 git remote -v 6 7 #本地倉庫添加一個新的遠程倉庫,並命名 8 git remote add [遠程倉庫別名:默認origin] [遠程倉庫地址url] 9 10 #下載一個項目和它的整個代碼史(不用初始化倉庫) 11 git clone [url] 12 13 #拉取遠程倉庫的變化,並與本地分支合並(建立鏈接) 14 git pull <遠程倉庫別名> [遠程分支名]:[本地分支名] 15 #簡寫:(遠程分支名和本地分支名相同) 16 git pull <遠程倉庫別名> [分支名] 17 18 #推送到遠程倉庫(branch-name:本地分支名) 19 git push -u <遠程倉庫別名> [branch-name] 20 #遠程已有分支,但未關聯本地分支(本地已切換到同名分支) 21 git push -u origin/remote_branch 22 23 #創建遠程分支&推送本地分支到遠程分支 24 #1、會創建遠程分支 25 #2、遠程分支與本地分支名字相同 26 git push <遠程倉庫別名> [遠程分支名] 27 28 #強行推送當前分支到遠程倉庫,即使有沖突 29 git push <遠程倉庫別名> --force 30 31 #推送所有分支到遠程倉庫 32 git push <遠程倉庫別名> --all
四、Git實戰
一、暫存區提交與撤銷
1、比較工作區和倉庫的不同
修改文件后直接commit(只在工作區修改,沒有commit到git倉庫)

1 執行 2 git diff HEAD -- [文件名] 3 比較工作區和倉庫的不同

1 差異比較說明: 2 '---':表示變動前的文件 3 '+++':表示變動后的文件 4 變動的位置用兩個@符號作為開始和結束 5 '-0,0':減號表示第一個文件,第一個0表示第0行,第二個0表示連續0行; 6 '+1,2':加號表示第二個文件,第一個1表示第1行,第二個2表示連續2行;
2、暫存區刪除文件
git reset HEAD [文件名]
二、版本回退
1、查看日志
git log

2、回到上一個版本
1 git reset --hard HEAD^
3、回到上兩個版本
1 git reset --hard HEAD^^
4、回到指定版本
1 git reset --hard HEAD~3 2 #回到3個版本前
5、查看所有版本信息
git reflog

6、回到指定版本
1 git reset --hard [唯一id]

7、查看簡潔版本信息
git log --pretty=oneline

三、版本刪除
1、取消刪除
工作區刪除文件,取消刪除(git倉庫沒有刪除)
1 git restore [工作區刪除的文件名]
2、從版本庫拉回
1 git checkout [工作區刪除的文件名]
3、從版本庫刪除
1 git rm [版本庫中要刪除的文件名]
四、遠程倉庫
1、查看本地倉庫提交的內容
1 git ls-files
2、添加遠程倉庫
1 git remote add [遠程倉庫別名:默認origin] [遠程倉庫地址url] 2 #eg:git remote add origin https://github.com/...
3、推送到遠程倉庫
1 git push -u origin master
4、使用SSH地址
-
生成密鑰
ssh-keygen -t rsa -C "github/gitee賬戶郵箱"
-
密鑰地址:
1 /c/Usres/Administrator/.ssh/id_rsa
-
在github或者gitee設置中找到SSH設置 ---> 新建SSH,添加公鑰(不要加密鑰)
-
其他同https
五、本地分支操作
1、查看所有分支
1 git branch
2、新建分支並切換
1 git checkout -b [new_branch-name]
3、刪除指定分支
1 git branch -d [branch-name]
4、切換指定分支
git checkout [branch-name]
5、合並分支
合並指定分支到當前分支(當前分支為master,此操作在master分支上進行),禁止合並主分支到其他分支
1 git merge [branch]
6、重命名分支
如果newbranch名字已經存在,則需要使用-M強制重命名,否則,使用-m進行重命名
1 git branch -m|-M [oldbranch] [newbranch]
六、遠程分支操作
1、查看遠程所有分支
1 git branch -r
2、查看本地和遠程所有分支
1 git branch -a
3、創建遠程分支&推送本地分支到遠程分支
1 git push origin [branch-name] 2 #1、會創建遠程分支 3 #2、遠程分支與本地分支名字相同
4、刪除遠程分支(本地分支還保留)
危險操作
注:注意冒號
1 git push origin :[remote_branch]
5、拉取遠程分支並在本地創建分支
注:遠程分支前加origin
1 git checkout -b [local_branch] origin/[remote_branch]
七、本地分支沖突解決
1、本地分支修改文件


2、切換分支
1 git checkout master
3、本地master分支修改文件


4、主分支進行合並
1 git merge dev1
5、沖突解決方法
根據業務進行手動解決
解決沖突后重新add,commit
6、查看分支合並圖
1 git log --graph --pretty=oneline
八、多人沖突解決
1、先拉取
1 git pull

