由于之前对Git不重视, 到了新公司以后, 发现自己对Git的很多操作都不熟悉, 遇到问题很容易束手无策, 在经过一番学习以后, 将上传代码的流程整合到PyCharm上, 这样在需要上传代码时就不需要再敲那些指令, 可以用很短的时间(1min内)把代码传上去, 大大提高了效率, 所以决定把这个过程总结一下, 方便后续使用.
二. 基础设置首先要把PyCharm的设置指向本机上安装的git, 打开File - Settings
然后打开版本控制, 选择Git, 注意这里我选择了cmder自带的git路径, 如果你们自己安装了git, 就写你们自己的路径
上传分成几种情况
- 首次上传, 需要创建新的分支
- 往已有的分支上传代码
以下我将使用自己的gitee账号来演示整个过程, 但是原理是一样的, 在Gitlab上一样会生效.
3.1 首次上传, 需要创建新的分支 3.1.1 在上传任何代码之前, 请先素质三连(fetch, pull, rebase)- 首先切换到master分支
打开你的项目, 在右下角点击分支名, 选择master, 然后选择Checkout
对应指令:
git checkout master
如果右下角已经是master, 则不需要切换.
-
顶部菜单栏, 选择Git - Fetch
这一步仅仅是把代码从远端下载下来, 但是还没有更新到进来
对应指令:
git fetch -
Git - Pull…
这一步从远端拉取代码, 默认就是从当前对应的分支拉取, 比如master默认拉取的就是origin/master
这一步的origin是固定的不可选, master就是对应的远程分支, 不要选错了.
对应指令:
git pull
- Git - Rebase…
这一步是将之前自己的提交, 放到别人的提交之后, 可以防止提交树的混乱
选择基于远程分支的提交即可
- 在master分支下, 右下角选择新增一个分支(该分支将会基于master创建, 如果在打开其他分支下新建分支, 就会基于该分支进行创建)
在弹出的窗口输入分支名, 并选择切换到该分支
可以看到右下角分支名已经更改, 并且本地分支也多了一个br2
对应指令:
git checkout -b br2
- 如果你想删除这个分支, 那么同样需要切换到master分支, 然后选择br2分支,选择Delete
对应指令:
git branch -D br2
这一步仅仅会删除你本地的分支.
-
如果你打算使用这个分支上传代码, 那么就按照以下操作
为了演示,我在br2下进行了修改, 新增了一行, 你可以当成是你的更新
-
提交
提醒: 如果在提交之前有一些其他检查比如代码规范之类的, 请做完再提交.
你也可以使用这个按钮
对应指令:
git commit -m “XXX” -
推送
注意红框里的内容, 向origin/br2推送, 而不是向origin/master推送, 这一点要注意检查
对应指令:
git push --set-upstream origin br2
其中的–set-upstream就是指定上传(上游)分支
- 此时你可能要到Git上检查一下,看是否push成功
不过一般PyCharm左下角会有提示,你也可以点开看看操作日志
当然, git中也已经创建了新的分支
我的修改也已经更新到br2分支上.
3.1.4 更新小修改- 此时你突然想起, 你还有一个txt文件需要上传, 那么你可以这么操作
如果之前那个commit界面还在, 你可以先把它缩小
如果还是没有看到项目文件, 可以通过以下方式将它显示出来
- 好, 现在我往项目中添加一个txt文件, 用于记录一些事情
如果你在加文件的过程中有以下提示, 点击add即可
-
然后我在这个文件加上以下内容
-
由于这次不需要再次添加注释, 所以我直接将它按照默认方式提交
amend表示不需要保留上次的提交记录, 将会保留最新的, 由于你不想让别人知道你忘了提交一个txt, 所以你就选这个
对应指令:
git commit --amend --no-edit -
这次更新使用强制推送的方式即可
对应指令:
git push -f
此时会出现如下警告,这样操作将会覆盖远程提交, 这正是我们想要的,选择强制推送即可
此时我们再去看远程分支
可以看到, changes文件夹明明是我1分钟前push上去的, 结果看到的却是30分钟前的推送
然后看提交历史, 今天也只有一次提交
至此, 新建分支的推送结束!
3.2 往已有的分支上传代码你的第一版代码被上司看过以后, 指出了10多处错误, 责令你立即解决, 于是你熬夜奋斗, 准备上传新的一版代码.
3.2.1 进行任何更改之前, 请素质三连(fetch, pull, rebase)由于这部分和前面相似, 就不重复了
3.2.2 拉取你的提交, 放在别人的提交后面为了不干扰提交树, 在你更新完master后, 需要把你上次提交抽出来, 在别人的master上再提交一次
操作如下
首先切换到你的分支
然后选择Git - Rebase…
此次rebase需要在master的基础上, 进行手动rebase, 所以需要添加-i参数,
此时会弹出你commit的记录,如果你不需要更新, 直接rebase即可
左下角将会有rebase成功的提示
这次推送的目的是把你的rebase操作推送到远端, 这样你的后面的commit也会在这次rebase之后, 防止中间穿插一些其他commit
3.2.4 更新代码, 推送到远端此时你可以再检查一下代码, 没问题的话, 就更新到br2中, 然后commit 和push即可
强制推送
此时会出现如下警告,选择强制推送即可
至此, 推送完毕!


![[Git] 如何使用PyCharm更新和上传代码到远程分支 [Git] 如何使用PyCharm更新和上传代码到远程分支](http://www.mshxw.com/aiimages/31/348055.png)
