远程仓库 分支管理 标签管理

远程仓库

连接远程仓库

"""
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,

在用户主目录下,可以看到.ssh目录,这个目录下有id_rsa(私钥)和id_rsa.pub(公钥)这两个文件,
注册GitHub账号,在设置中的ssh keys中添加公钥即可
"""

从远程库克隆

"""
把远程的仓库克隆到本地:
$ git clone git@github.com:shaoshaui-1024/gitskills.git
"""

分支管理

创建与合并分支

"""
查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>
"""

解决冲突

"""
冲突造成的原因:
创建一个分节点,操作文件fileme.txt,然后添加并且上传到仓库,
再切换到master主节点,同样操作文件fileme.txt,然后添加并且上传到仓库,然后通过命令:git merge <分节点名> 合并节点,造成冲突


当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph命令可以看到分支合并图。
更加清晰的查看合并图命令:$ git log --graph --pretty=oneline --abbrev-commit
"""

分支管理策略

"""
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

"""
$ git merge --no-ff -m "merge with no-ff" dev  # 因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。(--no-ff参数,表示禁用Fast forward)

Bug分支

"""
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;

在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。
"""
$ git branch -d 分节点  
# 如果还未合并,Git会友情提醒,节点分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用大写的-D参数。
$ git branch -D 分节点  # 强行删除

关联远程代码库

$ git remote add <自定义名称> git@github.com:shaoshuai-1024/<库名>.git  
# 官方定义名称是:origin,当然可以根据自己兴趣自己定义
# 库名:就是选择你github上你要关联库名

Rebase

"""
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
"""

标签管理

"""
命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;

命令git tag可以查看所有标签。

命令git push origin <tagname>可以推送一个本地标签;

命令git push origin --tags可以推送全部未推送过的本地标签;

命令git tag -d <tagname>可以删除一个本地标签;

命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
"""
posted @ 2022-02-02 18:30  程序员少帅  阅读(59)  评论(0)    收藏  举报