git 如何正确的提交文件
来源:互联网 发布:java string类源码分析 编辑:程序博客网 时间:2024/06/07 22:19
之所以写这篇文章,是因为昨天发生了一个很重要的事情,那就是我下了一天的代码,在提交的时候没有了。。。因为一些不当的git的操作,我损失了一天的劳动力,并因此付出加班到半夜的代价!因此,在网上查了一下git正确提交文件的步骤,在此做个记录。
一、我的不当操作
1、因为工作一天了,怕在远程代码库的代码被同事修改,我直接传上去会出现问题,所以想要先合并一下,也就是git pull 下来,但是又觉得直接pull下来,十有八九会直接merge失败,因此我抖机灵一下:
git checkout -f
罪恶的根源:
什么是 git checkout ?
答:git checkout本意是切换分支或者创建分支,获取分支的HEAD。或者通过 git checkout master来获取当前master分支的HEAD等。但在使用 git checkout的时候需要注意:
在使用git checkout 时,如果其对应的文件被修改过,那么该修改会被覆盖掉。
git checkout -f 还有一种说法就是放弃本地的修改。所以,这个命令是罪魁祸首。需要慎重使用
2、接下来我又执行了 git pull git push等操作,结果就是全军覆没,写了一天的东西都没了,这是个悲伤的故事。
二、关于正确的提交操作
一般来说,多人合作开发的时候,都有标准的,就是先提交commit,再pull,最后push
git add -A #需要添加到版本库中的文件 -A 就代表着所有文件(除开了 .gitignore忽略掉的文件)git commit -m '本次提交的备注'git pull #将远程的库和本地的库版本同步一下,因为远程库可能发生了修改(多人合作开发时)git push
解释一下:
commit
是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;pull
是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在git add && git commit && git pull
这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉出现代码覆盖或者丢失的情况:比如A B两人的代码pull 时候的版本都是1,A在本地提交了2,3并且推送到远程了,B 进行修改的时候没有
commit
操作,他先自己写了东西,然后git pull
这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push
那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的
- git 如何正确的提交文件
- 如何正确的ignore git中的文件
- git 已提交文件的 如何屏蔽git的track
- Git提交master被拒后回退的正确操作
- 如何创建.gitignore文件,忽略git不必要提交的文件
- git正确的删除远程仓库的文件并用.gitignore忽略提交此文件
- git正确的删除远程仓库的文件并用.gitignore忽略提交此文件
- git 使用时如何正确的提交改动(progit P291)
- git 如何添加指定的文件提交.
- git如何查看某一个文件的详细提交记录
- git如何查看某一个文件的详细提交记录
- pycharm 如何不提交修改过的文件到git
- 如何删除错误提交的 git 大文件
- git stash提交PR的正确步骤&git squash技术
- 忽略git的文件提交
- git 文件修改的提交
- git提交时候需要注意的问题(如何控制不想提交的文件)
- 如何将设备文件提交进git
- Coursera吴恩达《神经网络与深度学习》课程笔记(1)-- 深度学习概述
- Codeforces Round #431 (Div. 2) From Y to Y
- Codeforces Tell Your World
- 【codevs 1036】商务旅行
- Guava Cache使用笔记
- git 如何正确的提交文件
- cf 849B
- 欢迎使用CSDN-markdown编辑器
- git 使用详细介绍
- 快速排序及c++实现
- 大话设计模式之一:如何在visual studio 中建立C#程序
- 绑定开发者-小程序开发设置2-微信小程序开发-视频教程9
- 应用环境下的TIME_WAIT和CLOSE_WAIT
- spring AOP