利用命令行提交代码步骤
提交代码之前,需先从服务器上面拉取代码,以防覆盖别人代码。
1:拉取服务器代码
git pull
2:查看当前工作目录树的工作修改状态
git status
状态:
1:Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
2:Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作.
3:deleted: 文件已删除,本地删除,服务器上还没有删除.
4:renamed:
3:将状态改变的代码提交至缓存
git add + 文件
git add -u + 路径:将修改过的被跟踪代码提交缓存
git add -A + 路径: 将修改过的未被跟踪的代码提交至缓存
例如:
git add -u vpaas-frontend/src/components
将 vpaas-frontend/src/components 目录下被跟踪的已修改过的代码提交到缓存中
git add -A vpaas-frontend/src/components
将 vpaas-frontend/src/components 目录下未被跟踪的已修改过的代码提交到缓存中
4:将代码提交到本地仓库中
git commit -m “注释部分 ref T3070”
注:
T3070: 任务号
5:将代码推送到服务器
git push
问题
1:误将代码提交到缓存中(利用 git add 命令误将代码提交的缓存中)
解决办法:利用 git reset 命令将撤回缓存中的代码。
2:误将代码提交到本地仓库(利用 git commit 命令误将代码提交到本地仓库)
解决办法:
git reset —soft + 版本号
回退到某个版本,只回退了commit的信息,不会改变已经修改过的代码。
git reset —hard + 版本号
彻底回退到某个版本,本地的代码也会改变上一个版本内容。
补充知识:使用TortoiseGit处理代码冲突
场景一
user0 有新提交
user1 没有pull -> 写新代码 -> pull -> 提示有冲突
解决办法一
-> stash save(把自己的代码隐藏存起来) -> 重新pull -> stash pop(把存起来的隐藏的代码取回来 ) -> 代码文件会显示冲突 -> 右键选择edit conficts,解决后点击编辑页面的 mark as resolved -> commit&push
解决办法二
(尽量少使用,这种方法的优点是在在原编辑器里处理冲突,代码逻辑看得更清楚一些)
-> stash save(把自己的代码隐藏存起来) -> 重新pull -> stash pop(把存起来的隐藏的代码取回来 ) -> 代码文件会显示冲突 -> 右键选择resolve conflict -> 打开文件解决冲突 -> commit&push