1.本地同步远程分支(当本地分支与远程分支不一致时使用)
1.git remote prune origin
2.git fetch #这个是更新git remote 中所有的远程repo 所包含分支的最新commit-id
2.创建分支
1)克隆项目
在目标文件夹下git clone [url] 克隆项目后,进入文件夹
git branch #查看本地分支
git branch -a #查看远程分支
1) 切换到基础分支,如主干
git checkout master
2)创建并切换到新分支
git checkout -b feature-test
git branch可以看到已经在feature-test分支上
3)更新分支代码并提交
git add * #暂存所有更改文件
git commit -m "init feature-test" #提交暂存文件
git push #推送提交的暂存文件
3.合并分支到master
1)先切换到master
git checkout master
2)如果是多人开发的话 需要把远程master上的代码pull下来,自己开发的话就不需要了,目前是让当前代码和master一致
git pull master
3)将分支 feature-test 的代码合并到 master
git merge feature-test
4)push 到 远程 仓库
git push master
4.删除分支
当一个分支被废弃时,我们要做的是删除分支,在彻底删除一个分支时,需要三个步骤
1)删除本地分支
git branch -d feature-test
(也可以用 git branch -D feature-test 强制删除本地分支)
2)删除远程分支
git push origin --delete feature-test
3)删除本地追踪分支,即追踪远程master的追踪分支origin/master
5.分支重命名
1、将本地分支feature-test切一个分支到本地
git branch -m feature-test feature-testNew
2、删除远程分支
git push --delete origin feature-test
3、将本地新分支推送到远程
git push origin feature-testNew
6.代码 git merge XX分支后未git push前,撤回git merge合并代码如下
1.先git reflog 查看版本号,拿取版本id 可以按q退出查看日志
2.输入 git reset --hard 版本id
7.代码git push后,撤回代码如下
1.在gitlab 里查看提交的待撤销的版本id
2.撤销: git reset --hard 版本id
3.在代码随便改点注释啥的,必须要有内容暂存提交
4.强行推送: git push -f origin 分支名
8.踩坑
1.git分支命名时不要使用develop/test,这样gitlab会认为这是一个develop分支,而不是你所想象的develop/test
2.当gitlab分支名称带有feature-test(2022-08-30) 时,对该分支操作需要带双引号,例如git checkout -b “feature-test(2022-08-30)”
3.如果gitlab中途换地址了,可以找的该项目根文件夹,然后进入.git文件夹,找的config文件进行更改,如下图
- remotes/origin是远程分支的意思
- 当有错误的版本提交了,可以回退版本,如下所示(版本号是从gitlab你提交记录里复制SHA的值)
git reset --hard 42c3f32ca625b393214e8bebdcfe442bcca9c0d2