在执行 git pull / push 时,须要相应的用户权限,若是使用远程仓库的 HTTPS 地址,则每次同步都须要输入用户名密码。 所以,从安全性和便利性的角度考虑,应当始终使用远程仓库的 SSH 地址。 这里添加公钥和私钥的方法:html
运行如下命令,一直回车git
ssh-keygen -t rsa -b 4096
github
将 pub 公钥的内容粘贴到线上网站的后台安全
cat ~/.ssh/id_rsa.pub
服务器
参考博客:gb.yekai.net/concepts/ss…ssh
拉取代码时不指定分支,直接拉取的时master下面的代码 git clone URL/SSH
gitlab
指定分支,拉取分支下的代码 git clone -b dev_jk URL/SSH
这里的dev-jk就是分支,URL/SSH为源码的仓库地址post
git add . //跟踪文件 git commit -m”提交注释” //提交更新 能够在提交代码以前检查文件的状态git status,看是不是全部的文件都已经被跟踪(放入了暂存区)测试
git push origin 本地分支名:远程分支名
fetch
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 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