申明:资料来源于网络及书本,通过理解、实践、整理成学习笔记。
分支定义
主分支:master
开发分支:develop
功能分支:feature
预发布分支:release
修补bug分支:fixbug
feature、release、fixbug这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有Master和Develop。
分支的使用规划
master:主分支(远程记录,管理员提交),只用来标记客户使用的发行版,当develop中的一次提交测试完成后,正式给客户使用时,将开发分支合并到主分支并进行标记。
develop:开发分支(远程记录,开发人员提交),记录的主干,功能的开发并不在这里完成。
feature: 用于功能开发(本地临时记录),在这里我们是一个开发人员完成一个功能开发。
开发时先从 develop 分支创建一个以 “功能” 命名的临时分支,一个功能开发完成后合并到 develop 分支,并删除这个临时分支(必须要删除),再次从 develop 分支创建新的临时分支进行下一个功能开发。为什么这样做,等你会用分支树,并需要在以后翻代码时就知道了。
一、推送远程仓库
- 切换到develop分支:git checkout develop
- 查看本地的提交记录: git log develop
- 查看远程的推送记录:git log remotes/origin/develop
- 推送:git push
- 运行命令2、3 显示的结果一样
这里只使用了一条指令 “git push ” 是因为我们已经克隆了远程仓库 “develop”,并且已经设置好了 “别名” 与 “关联”
Administrator@PC202008061317 MINGW64 /c/www/git-demo (develop)
$ git log develop
commit ca1008f1e3c0ceedd9093b5264e41e9b6e35d393 (HEAD -> develop)
Merge: b1aa32a 9d5417c
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 11:19:25 2021 +0800
第一个功能完成合并到 develop
commit 9d5417cd8a21a6e5658cdda76e21558e5219f9a0
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 11:11:02 2021 +0800
完成第一个功能
commit b1aa32a291e4460d9e100372f5b169c0e147ca53 (origin/develop)
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 10:34:32 2021 +0800
init develop commit
commit ff445e71fd22479f3b2e63b921f074152518ee50 (origin/master, origin/HEAD, master)
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 10:29:25 2021 +0800
init master commit
Administrator@PC202008061317 MINGW64 /c/www/git-demo (develop)
$ git log remotes/origin/develop
commit b1aa32a291e4460d9e100372f5b169c0e147ca53 (origin/develop)
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 10:34:32 2021 +0800
init develop commit
commit ff445e71fd22479f3b2e63b921f074152518ee50 (origin/master, origin/HEAD, master)
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 10:29:25 2021 +0800
init master commit
Administrator@PC202008061317 MINGW64 /c/www/git-demo (develop)
$ git push
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 2 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 430 bytes | 215.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-5.0]
To gitee.com:vteetty/git-demo.git
b1aa32a..ca1008f develop -> develop
Administrator@PC202008061317 MINGW64 /c/www/git-demo (develop)
$ git log remotes/origin/develop
commit ca1008f1e3c0ceedd9093b5264e41e9b6e35d393 (HEAD -> develop, origin/develop)
Merge: b1aa32a 9d5417c
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 11:19:25 2021 +0800
第一个功能完成合并到 develop
commit 9d5417cd8a21a6e5658cdda76e21558e5219f9a0
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 11:11:02 2021 +0800
完成第一个功能
commit b1aa32a291e4460d9e100372f5b169c0e147ca53
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 10:34:32 2021 +0800
init develop commit
commit ff445e71fd22479f3b2e63b921f074152518ee50 (origin/master, origin/HEAD, master)
Author: vteetty <vteetty@gmail.com>
Date: Tue Feb 23 10:29:25 2021 +0800
init master commit
Administrator@PC202008061317 MINGW64 /c/www/git-demo (develop)
$
二、远程仓库使用总结
新建远程访问用的SSH
ssh-keygen -t rsa -C "abc@qq.com"
新建别名
git remote add "远程仓库地址别名" "远程仓库地址"
git remote add origin "远程仓库地址"
git remote add origin git@gitee.com:vteetty/git-demo.git
设置"本地分支"和origin/"远程分支"的链接
git branch --set-upstream-to=origin/develop develop
git branch --set-upstream-to=origin/master master
查看远程仓库信息
git remote -vv
查看远程仓库分支信息
git branch -r
git branch -a
别名(origin)推送
git push origin "本地分支名称" "远程分支名称"
git push origin "本地分支名称"
git push -u origin "本地分支名称"
如果远程分支名称被省略,则表示将本地分支推送到与之存在关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
-u 记住"本地分支"和origin/"远程分支"的链接,以后可以使用简化命令 “git push” “git pull”
别名(origin)拉取
git pull origin "远程分支名称":"本地分支名称"
git pull origin "远程分支名称"
如果本地分支名称被省略,则表示拉取到当前分支
git pull
git pull --all
远程 master 仓库建立
在 gitee.com 新建
远程 develop 仓库建立
- 新建本地分支 develop
- 提交本地分支
- 推送本地分支到远程仓库
克隆 master 仓库
git clone git@gitee.com:vteetty/git-demo.git
克隆 develop 仓库
- 克隆 master 仓库
- 拉取全部分支
- 创建本地的 develop 跟踪分支
方法一:git checkout
切换到一个本地不存在 “develop”,自动建立 跟踪分支。
方法二:git checkout -b develop origin/develop
方法三:git branch --track develop origin/develop
推送
git push "远程仓库地址" "本地分支名称" "远程分支名称"
git push "远程仓库地址" "本地分支名称"
如果远程分支名称被省略,则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建