起步
在执行 git pull / push 时,需要相应的用户权限,如果使用远程仓库的 HTTPS 地址,则每次同步都需要输入用户名密码。 因此,从安全性和便利性的角度考虑,应当始终使用远程仓库的 SSH 地址。 这里添加公钥和私钥的方法:
运行以下命令,一直回车
ssh-keygen -t rsa -b 4096
将 pub 公钥的内容粘贴到线上网站的后台
cat ~/.ssh/id_rsa.pub
参考博客:gb.yekai.net/concepts/ss…
做些操作
拉取:
-
拉取代码时不指定分支,直接拉取的时master下面的代码
git clone URL/SSH
-
指定分支,拉取分支下的代码
git clone -b dev_jk URL/SSH
这里的dev-jk就是分支,URL/SSH为源码的仓库地址
提交:
git add . //跟踪文件 git commit -m”提交注释” //提交更新 可以在提交代码之前检查文件的状态git status,看是否是所有的文件都已经被跟踪(放入了暂存区)
推送:
git push origin 本地分支名:远程分支名
origin - 这是 Git 给你克隆的仓库服务器的默认名字
但是 push
之前要先将别人在你 clone
之后推送的代码拉取下来并合并到自己的代码里之后才能 push
,否则服务器会拒绝你的操作
也就是:
git pull <远程主机名> <远程分支名><本地分支名>
取回远程主机某个分支的更新,再与本地指定的分支合并
勤快谨慎的人可以这样写:git pull = git fetch + git merge
git fetch <远程主机名> <远程分支名><本地分支名>
:访问远程仓库,从中拉取所有你还没有的数据,执行完成之后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并和查看。注意它不会自动合并或修改你当前的工作,必须自己手动将其合并:git merge <本地分支名>:合并数据到本地分支
Merge dev
分支到 uat
环境,再到 master
环境:
一定要当开发分支上提交的代码测试完毕之后,确定没问题之后,才能merge到其他分支上。一般这个步骤都是老大做,但是遇到一些小需求当测试告诉你可以merge到下一阶段的分支上的时候。你可以自己合并一下
git checkout [uat] //切换到你要合并的分支上
git branch -a //查看本地有的分支
一般切换到分支之后,要在拉取一下当前分支上的最新代码,上面的pull操作,防止提交代码的时候出现冲突
git merge dev //将Dev分支合并到当前分支 git push //合成之后将代码push到远程分支上 在公司项目中将其他分支的代码合并到 master 分支和其他 merge 方式不同,需要提合并申请请求给项目的负责人,待负责人 review 代码之后再进行合并。不同的代码存储仓的提交合并请求的叫法不同,gitlab 的请求是叫 merge request(MR)。 github 和 码云是叫 pull request(PR)。
分支:
当新开始一个项目因为很多时候不能直接将代码提交到 master
分支上去,这时候就需要新建一个分支,将本地的代码提交到新建的分支上面。等分支上面的代码测试通过,再由老大 merge
到 master
分支上去。
具体实现:
-
情况一:线上还未创建分支:本地创建分支后推送到线上去 新建分支并切换到此分支:
git checkout -b [dev]
//等于两条语句:git branch [dev]
、git checkout [dev]
推送分支到远程代码库:git push origin [dev]
-
情况二:线上已经创建好分支,本地需要关联到线上的分支 新建分支并切换到此分支并将本地分支
dev
关联到远端的dev1
:git checkout -b [dev] origin/[dev1]
有时候这种方法可能会出错,因此可以谨慎详细的使用:
先 git fetch origin 远程分支名:本地分支名
,新建分支并与远端分支关联。然后再切到这个分支上:git checkout 本地分支名
,
注意分支名字要和线上的分支名相同,相同的情况下可以直接 git push
,会将代码推送到远端和现在分支名相同的分支上,如果不相同就需要将分支名写完全:git push origin 本地分支名:远程分支名
。当然这时候也可以使用 git branch --set-upstream-to=origin/[远程分支名] [本地分支名]
然后就可以在当前分支上进行开发,然后进行推送。和上面的执行过程相同
需要注意的是,当当前分支的工作结束之后,并且进过测试成功合并到master分支之后,要及时将本地的分支和远端的这个分支删除了,先删除本地分支再 push 到远程服务器。
删除:
- 删除本地分支:
git branch -d [dev]
,注意的是如果分支代码未合并执行这个操作 git 会报错并且不会进行删除,这时你可以选择使用git branch -D [dev]
,强制删除这个分支。(建议不要使用) - 删除远程分支:git push origin :[dev] 或者可以是: git push origin --delete [dev]
暂存:
当需要提交代码的时候,当前改动的一部分不需要提交,有两种实现方法:
- 在 git add 的时候忽略掉不需要提交的文件,不进行跟踪,后面的操作正常
- 先将文件放进暂存区里面,
git stash
,展示暂存区里的暂存记录:git stash list
,弹出第一条git stash pop
。
使用 git 的暂存功能还能解决在开发过程中可能发生的因为不注意产生的小问题,也就是写错分支怎么办?
如果中间没有出现差错,整个的实现步骤可以是以下简单的几步:
git clone -b dev URL/SSH
git checkout -b 分支名字
git push origin 分支名字
git branch --set-upstream-to=origin/[远程分支名] [本地分支名]
- 修改代码
git add .
git commit -m 提交信息
(这里提交信息必须写点儿什么,不然的话就提交不了)。git pull / git pull origin dev:dev
git push / git push origin dev:dev