Git拉取代码+上线流程总结(持续更新一些问题解决的方法)

目录

【拉取代码】

【上线代码】

情况1:分支是新拉取的或者是分支是刚提了mr的需要这样上线(即之前没有未合并的commit)

情况2:分支上已经存在未mr的commit的需要这样上线

情况3:上传commit ,提了合并请求后,发现只有一条commit。那么可以直接提醒mt进行上线

情况4:上传了多条commit,准备提mr进行上线,需要进行commit压缩(前提是该分支的commit显示正常:比如说你提交了3次commit,但是gannt的网站上显示了多于3个的commit,这就属于不正常情况)

【上线注意】

【只看常用命令】

【问题解决】


【拉取代码】

  1. 新建一个空白文件夹,用于存放拉取的代码
  2. 配置git环境:右键新建的文件夹,选择git bash,输入指令初始化git文件
指令作用
git init初始化git环境
git remote add origin 项目地址与远程项目建立链接
git fetch origin 远程分支

拉取远程分支到本地

git checkout -b 本地分支名 origin/远程分支名

建立本地分支并切换到该分支
git push -u origin 分支名与新建的远程分支相关联

到此为止已经拉取好远程的代码到本地,然后就是开始修改代码。

【上线代码】

  • 情况1:分支是新拉取的或者是分支是刚提了mr的需要这样上线(即之前没有未合并的commit)

指令作用
git add .将文件添加到暂存区(注意这一步可以在执行后,如果发现代码哪里还要再修改,可以再git commit之前再次发送这条指令)
git commit -m 'xxxxxx'将暂存区的代码提交到本地仓库,引号内添加相关注释,要简洁明了
git branch 主分支切换到主分支
git pull 将主分支代码拉到最新
git branch 本地分支切换到本地分支
git rebase 主分支如果存在冲突,则解决冲突;若没有冲突,则继续进行后续操作

git push

git push origin HEAD:远程自己的分支

将本地分支推送到线上仓库;

如果本地分支未和远程自己的分支关联则执行这条指令(注意冒号不要丢了)

rebase 时出现冲突:在发生冲突的文件处选择保留之前的修改还是现在的修改,解决完成冲突之后执行下述指令。

指令作用
git rebase --continue解决完冲突之后,继续rebase
git rebase --about如果解决冲突出现问题,想取消变基则执行这个(需要慎重,这个操作会回到未执行git rebase 主分支指令时,不会保留之前已解决的冲突)

git push -f

git push -f origin 远程自己的分支名称

continue变基之后,强制提交

如果本地分支未和远程自己的分支关联则执行这条指令

  • 情况2:分支上已经存在未mr的commit的需要这样上线

指令

作用

git add .将文件添加到暂存区(注意这一步可以在执行后,如果发现代码哪里还要再修改,可以再git commit之前再次发送这条指令)
git commit -m 'xxxxxx'将暂存区的代码提交到本地仓库,引号内添加相关注释,要简洁明了
git branch 主分支切换到主分支
git pull 将主分支代码拉到最新
git branch 本地分支切换到本地分支

git push

git push origin HEAD:远程自己的分支

将本地分支推送到线上仓库;

如果本地分支未和远程自己的分支关联则执行这条指令(注意冒号不要丢了)

  • 情况3:上传commit ,提了合并请求后,发现只有一条commit。那么可以直接提醒mt进行上线

  • 情况4:上传了多条commit,准备提mr进行上线,需要进行commit压缩(前提是该分支的commit显示正常:比如说你提交了3次commit,但是gannt的网站上显示了多于3个的commit,这就属于不正常情况)

指令作用
git log以防万一,可以通过该指令查看你的commit日志(可能与项目网站上显示的不一样)

git rebase -i HEAD~commit的数量

打开Vim命令界面;

输入a:进入编写页面,把需要合并的pick改成s(一般第一个是最早提交的commit,保留pick,将后续的commit均改为s即可);

输入esc:退出编辑状态;

输入shift+:  :开始输入指令;

然后输入wq+回车:将编辑内容保存;

弹出所有commit 的备注信息,留下最重要的 ,其他都注释掉’#’;

如果存在冲突,就解决冲突(具体参见情况1中rebase 时出现冲突)

git rebase 主分支变基
git push -f强制提交,必须+”-f“。

commit压缩不正常情况:建议不压缩直接提mr进行合并。

解决:找到上次合并到主分支的id标号,将之前的分支上的commit全部压缩,以vim命令窗口的数量为准,有冲突的解决冲突后压缩(这种现象主要是因为之前的commit操作可能做了其他的操作导致的,比如你rebase了一下)

合并commit时发现commit时间顺序不对:

因为提交的历史记录存在混乱或者被重置造成的,可能发生在合并分支、变基操作或强制推送等操作后,改变提交历史记录的顺序和数量。
使用交互式变基进行提交重排:运行 git rebase -i <base> 命令,其中 <base> 是你想要重新基于的提交的父提交。通过交互式地重新基于提交,你可以重新排列提交历史记录,确保最早的提交在最前面。

完成变基:在交互式变基的编辑模式中,重新排列提交历史记录以将最早的提交放在最前面。保存并关闭编辑器后,Git 将会重新应用提交,按照你设置的顺序进行提交。然后解决冲突,合并分支,合并commit。

【上线注意】

如果需要rabase,先切换到本地主分支git pull(确保这期间有人更改的代码也合了进来),然后再切回到自己的分支进行rabase。

远程仓库代码合并(merge)时要注意:填写AB分支,取消勾选删除分支的选项。

测试服自测没问题了再上线。

【只看常用命令】

git show 

查看上次增加的commit
git reset --soft HEAD~1撤回上一次的commit
git pull用于从远程仓库中获取数据并尝试合并到当前分支
git pull origin 远程分支 本地分支拉取最新代码到本地分支
git checkout 本地分支切换到本地分支

git merge 本地分支

这个命令将本地的分支合并到当前所在的分支中

git add .

将修改后的本地分支的代码提交到暂存区

存在着换行符的格式问题。一般不是问题所在。

git commit -m 'xxxxxx'将暂存区的代码提交到本地仓库,引号内添加相关注释,要简洁明了。
git rebase 远程分支如果存在冲突,则解决冲突;若没有冲突,则继续进行后续操作。

git push

在当前分支将当前本地分支的代码提交到远程分支,并查看流水提交。
git reset --soft HEAD^
git push -f
提交回滚

【问题解决】

问题原因
fatal: not a git repository (or any of the parent directories): .git不包含 Git 仓库

PS 本地目录
fatal: 'gannt.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists

无法找到远程仓库

——git init

——Reinitialized existing Git repository in 本地目录
 

这个信息表明本目录下重新初始化了一个已存在的 Git 仓库。Git 仓库初始化是指在一个目录中创建一个新的 Git 仓库或重新初始化一个已存在的仓库。

git checkout 本地分支

error: pathspec 'opt-wangcy01' did not match any file(s) known to git

这个错误通常表示 Git 未能找到与指定路径或分支名匹配的文件或分支

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值