随心的博客

好记性不如个烂笔头,随心记录!

返回顶部

Git整理篇之02中级操作

一、创建远程仓库

登录github,创建一个仓库
地址为:git@github.com:yangphp/gitTest.git

二、生成SSH Key

1、生成SSH key

由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:
使用以下命令生成 SSH Key:

ssh-keygen -t rsa -C "youremail@example.com"

your_email@youremail.com 改为你在 Github 上注册的邮箱
之后会要求确认路径和输入密码,我们这使用默认的一路回车就行
成功的话会在 ~/ 下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key

2、添加SSH key

a、复制 id_rsa.pub里面的内容
b、打开github 点击右上角的头像 然后点击Settings
c、左边点击SSH and GPG keys 然后点击 New SSH key 按钮,
title 设置标题,可以随便填,粘贴在你电脑上生成的 key
点击 add ssh key 添加

3、测试是否添加成功

a、在git bash中输入

ssh -T git@github.com

b、如果出现

Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.
则表示连接成功了

三、关联远程仓库

本地关联远程仓库

git remote add origin git@github.com:yangphp/gitTest.git
git remote -v #查看远程库

首先运行拉取命令

git pull --rebase origin master

首次本地库的所有内容推送到远程库上

git push -u origin master

加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来

本地库的所有内容推送到远程库上

git push origin master

删除远程仓库

git remote -v #查看远程库
git remote rm origin #删除远程库和本地库的连接
注:只是删除关联,并没有删除远程仓库

四、clone远程仓库

1、git clone 和 git pull 的区别
clone是将一个库复制到你的本地,是一个本地从无到有的过程。
pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库。

git clone是远程操作的第一步,通常是从远程主机克隆一个版本库。
git pull 作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。

2、使用场景:
本地修改代码后,每次从本地仓库push到远程仓库之前都要先进行git pull操作,保证push到远程仓库时没有版本冲突。

3、git clone

git clone git@github.com:yangphp/gitTest.git

需要注意GitHub给出的地址不止一个,还可以用https://github.com/ 这样的地址
实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。
使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,
但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https

五、分支管理

创建并切换分支

git checkout -b devuser01 #命令加上-b参数表示创建并切换

创建分支

git branch devuser01

切换分支

git checkout devuser01

查看分支

git branch

合并分支

git checkout master #切换回master
git merge devuser01 #将devuser01分支内容合并过来

git merge --no-ff -m "merge with no-ff" devuser01
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

合并后没问题就可以删除分支

git branch -d devuser01

推送分支内容到远程仓库

git push origin master #推送主分支
git push origin devuser01 #推送分支devuser01

删除远程分支

git branch -a #查看所有分支
git checkout master #将分支切换到master上面
git push origin --delete devuser01 #删除远程分支devuser01

分支应用场景:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的。
到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

六、冲突解决

手动修改内容后,重新提交即可

1、先创建分支 devuser01
git checkout -b devuser01

2、修改分支上面 git011的内容并提交

git add git011_conflict.txt
git commit -m 'change git011 content'

3、切换分支并修改git011内容
git checkout master
git add git011_conflict.txt
git commit -m 'test solve conflict'

4、合并解决冲突
git merge devuser01 #可以看到提示git011_conflict.txt 冲突了

修改 git011_conflict.txt 并解决冲突后
git add git011_conflict.txt
git commit -m 'solve conflict'

5、查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit

6、删除子分支 devuser01
git branch -d devuser01

posted @ 2021-10-06 22:33  yangphp  阅读(35)  评论(0编辑  收藏  举报