git提交顺序为什么是:add,conmmit,pull,push

git提交顺序为什么是:add,conmmit,pull,push

  • [01. add,conmmit,pull,push的顺序问题](#01. add,conmmit,pull,push的顺序问题)
  • [02. 扩展:git上传常用的六个命令包括:add、commit、push、clone、pull、fetch。](#02. 扩展:git上传常用的六个命令包括:add、commit、push、clone、pull、fetch。)
javascript 复制代码
add:将文件添加到暂存区
commit:将暂存区中的文件提交到本地仓库
pull:从远程仓库获取最新代码并合并到本地仓库
push:将本地仓库的提交推送到远程仓库

01. add,conmmit,pull,push的顺序问题

git 为什么要先commit,然后pull,最后再push?而不是commit然后直接push?

情况是这样的,现在远程有一个仓库,分支就一个,是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都是这么做的。那么现在问题来了:

1,那我本地这个也算是个分支?还是就是一个本地仓库?

答:本地和远程的关系相当于两个分支,你感觉一样是因为你git pull 的时候已经自动给绑定好对应关系了。

2,如果我在远程新建了个分支,然后我pull了下来,那我本地到底有分支这个说法吗?我本地的分支是不是就是那个远程新建的分支?

答:你远程新建了一个分支拉到本地的道理是一样的,属于复制了一份,但是本地分支和远程分支已经是两个东西了

3,本地仓库和本地分支有什么区别?

答:本地有工作区和版本库,版本库有暂存区,和分支,本地分支属于本地仓库里,是包含关系,一个仓库里可以有很多分支。

4,commit是提交到本地仓库,然后push,这个push是把所有代码推到远程仓库,还是只是把commit的地方推到远程仓库?

答:肯定不会全量推送到远程的,是通过对比 commit 的记录,如果本地高于远程就直接把多出来的commit 给怼上去,如果本地分支的最新版本和远程的 commit 有冲突,就需要解决冲突,就是看那不一样,自己改,重新pull,commit操作一遍。

5,那为什么要先commit,然后pull,然后再push,我pull了,岂不是把自己改的代码都给覆盖掉了嘛,因为远程没有我改的代码,我pull,岂不是覆盖了我本地的改动好的地方了?那我还怎么push?

答:这个先 commit 再 pull 最后再push 的情况就是为了应对多人合并开发的情况,

1 .commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;

2 .pull是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行(在两个人操作同一个分支才会冲突)那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉

3 .出现代码覆盖或者丢失的情况 :比如A B两人的代码pull 时候的版本都是1,A在本地提交了2,3版本,并且推送到远程了,B 进行修改的时候没有commit 操作,他先自己写了东西,然后 git pull 这个时候 ,因为A B 两人是同一分支,所以B提交会导致覆盖A的代码,因为B不知道版本变了,以为原来的文件都没变,那就直接覆盖被,B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的。(这里是说的原理,实际是你不commit根本不让你pull !!!

原文链接:https://blog.csdn.net/code_mzh/article/details/106652168

02. 扩展:git上传常用的六个命令包括:add、commit、push、clone、pull、fetch。

  1. add:将文件添加到暂存区,使用命令git add <文件名>。可以使用通配符*将所有文件添加到暂存区,命令为git add .。add命令是Git中的重要步骤,将文件添加到暂存区后,才能进行commit操作。

  2. commit:将暂存区中的文件提交到本地仓库,使用命令git commit -m "提交说明"。commit命令需要添加一个提交说明,以便标识此次提交的目的和内容。

  3. push:将本地仓库的提交推送到远程仓库,使用命令git push <远程仓库名> <分支名>。远程仓库名一般是指远程仓库的URL,可以是origin等别名;分支名是指要推送的本地分支名。

  4. clone:克隆远程仓库到本地,使用命令git clone <远程仓库URL>。clone命令是获取远程仓库的一份完整拷贝,并在本地创建一个与远程仓库相同的仓库。

  5. pull:从远程仓库获取最新代码并合并到本地仓库,使用命令git pull <远程仓库名> <分支名>。pull命令相当于fetch和merge两个操作的合并,先从远程仓库获取最新代码,然后将其合并到当前分支。

  6. fetch:从远程仓库获取最新代码,使用命令git fetch <远程仓库名>。fetch命令将远程仓库的最新代码下载到本地,但并不合并到当前分支,需要使用合并命令进行合并。

以上六个命令是Git中上传常用的命令,通过它们可以完成代码的添加、提交、推送、克隆等操作。

原文链接:https://worktile.com/kb/ask/259572.html

相关推荐
b1ng6 小时前
新人程序员 Git 一站式指南
git·github
程序员的世界你不懂7 小时前
IDE 关联 Git 操作
ide·git
weixin_428498499 小时前
Git Submodule 介绍和使用指南
git
jingshaoqi_ccc20 小时前
GitKraken最后一个免费版本和下载地址
git·github·gitkraken·版本管理工具
乌云暮年20 小时前
Git简单命令
git·gitee·github·batch命令
用户1259265423201 天前
使用 Docker 搭建 Gitea 并实现 Git HTTP 自动登录
git
一只毛驴1 天前
谈谈对git stash的理解?
git
长风破浪会有时呀1 天前
Git 学习笔记
笔记·git·学习
中微子2 天前
Git Rebase 详解:概念、原理与实战示例
git
荔枝吻2 天前
【保姆级喂饭教程】Windows下安装Git Flow
windows·git·git flow