6
等组长走了,左小白就带着这三个疑问去寻求答案,首先工作区、暂存区、本地仓库、远程仓库都是啥?一顿搜索引擎,看了几篇文章,大概是明白了。
原来新增,更改,删除文件这些动作,就是发生在工作区,当我们使用命令git add
,那么这些更新就会出现在暂存区中。而本地仓库和远程仓库又是什么鬼?原来执行git commit
,代码是提交到本地仓库,再执行git push
,才把代码提交到远程仓库,这和 SVN 还是有很大的区别的,怪不得组长问我 git commit
就提交了?我太菜了。
问题来了,我如果git add
,我又不想 add 了,要怎么操作?亦或是git commit
,我想撤销,怎么做?这也是第二个疑惑“他刚刚提交好了,组长一顿操作是如何回退的?”,带着这个疑惑,左小白又是一顿搜索引擎,搜了好十几页才得到答案,某度真是辣鸡。
如果git add
后想撤销,可以通过命令git reset HEAD <file>
,如果git commit
后想撤销,可以通过命令git reset HEAD^
,牛逼啊,今天学到知识了,左小白觉得还不够,再整个图,加深记忆。
sequenceDiagram title: Git 示例 participant A as 工作区 participant B as 暂存区 participant C as 本地仓库 participant D as 远程仓库 复制代码
A->>B:git add <file> B-->>A:git reset HEAD <file> B->>C:git commit C-->>A:git reset HEAD^ C->>D:git push 复制代码
当小白画完这个图,一看时间已经来到 22:30 了,心想赶紧溜,狗命要紧,第三个疑问明天再整吧。
坐了一个小时的地铁,小白终于到家了,洗洗刷个抖音,满足地睡去了。
7
叮咚叮咚……7 点的闹钟响了……
起床,咦,内内怎么湿乎乎的,好像昨晚梦到女神,还跟她**,OMG。
又是一个小时的地铁,来到公司,左小白还想着“他如果删除了文件,怎么 add?”
git add -u
提交所有被删除和修改的文件到数据暂存区。
git add .
提交所有修改的和新建的数据暂存区。
git add -A
提交所有被删除、被替换、被修改和新增的文件到数据暂存区。
左小白测试了一下,发现git add .
和git add -A
功能是一样的,不管了。
8
组长:小白,你登录功能是做好了吧。
左小白:嗯,做好了。
组长:自测没问题的话,把代码提交上来吧,然后找项目经理 review 下。
左小白:好的。
之前组长已经帮左小白 add 好了,小白就直接 commit,然后 push 成功了。微信上他就找项目经理,帮忙 review 下代码,大约 20 分钟后,项目经理来消息了,丢了一个文档,小白一头雾水,有点不好意思,但代码还得上库,鼓起勇气问道:“这是什么?” 项目经理:这是代码提交规范,你的这个提交信息“Login”不符合规范,按照“[模块][bug/feature]描述”改下。
好吧,这给小白带来了难点,他代码都已经上去了,还怎么改提交消息?难道要把代码 Abandoned 重新提交?那就试试吧!当左小白执行git status .
,提示根本就没有文件修改,这行不通啊,怎么办?怎么办?
未完待续……
更多文章请关注公号:吴小龙同学。