git提交代码的步骤 git命令用于对当前代码进行提交

序Git是程序员工作中最常用的分布式版本控制系统,为了解决多人协作和多次修改的问题。虽然Git可以应用到各行各业,但实际上使用最多的还是程序员。应该说是程序员必备技能之一。如果你还学不会Git,那就赶紧学,不然可能就out了。可能很多学生党只是平时用Git,自己练习Git命...

Git是程序员工作中最常用的分布式版本控制系统,为了解决多人协作和多次修改的问题。虽然Git可以应用到各行各业,但实际上使用最多的还是程序员。应该说是程序员必备技能之一。如果你还学不会Git,那就赶紧学,不然可能就out了。

可能很多学生党只是平时用Git,自己练习Git命令,而在工作中并没有实际使用Git,也就是大概没有遇到过各种需要回滚代码和解决冲突的场景。

默认情况下,本文中的每个人都对Git有所了解,也就是说,他们大概应该对上述理论有所了解,所以我就不太啰嗦了。个人操作就是工作区,添加后会提交到一个暂存区阶段,提交后提交到本地仓库,推送后提交到远程仓库。

本文大致介绍了以下* *【提交代码的几种方式】【撤销添加操作】【撤销提交操作】【撤销推送操作】【拉新分支】【解决冲突】* *,主要基于命令行,可以帮助人们更容易理解,这样以后操作可视化工具会更方便,比如sourceTree。

最成功的提交

先说一个需求开发和代码提交的流畅过程。

命令行类型

切换基本分支:首先切换到要拉动的分支。一般来说,我们的开发中可能会有很多基于***ster的pulls,所以先切换到***ster(git checkout ***ster)。

创建一个本地分支:git checkout -b new-branch

提交到远程:git推送原点新分支

设置:git pull提取远程分支代码,发现它是不相关的,好吧,让我们这样做。

git branch-set-upstream-to = origin/new-branch new-branch建立关联,第一个new-branch是远程分支名称,第二个是本地名称。

Git再拉,成功

接下来,让我们进行热水开发。假设你的开发过程很顺利,和同事提交的代码没有冲突。你可能想知道为什么我单独创建的分支会有冲突,如何解决冲突。当然,下面我就说说冲突。

好了,下班了,先交代码。

你认为我开发了它?怎么可能呢?怎么一天就能开发出来?你这边需求设计开发不容易,那边也麻烦。

总之,不是一天就能养成的(坏笑

但我想先交代码。我害怕下班后有人偷我的电脑和我的劳动。

将代码放入本地仓库需要三个步骤,而将大象放入冰箱需要三个步骤。

步骤1: git add命令将修改后的文件放入临时存储区。

Git添加文件或git添加。代表所有人

步骤2: git commit命令将文件提交到仓库。

Git commit -m '提交信息'加上-m参数,后跟提示信息,强烈推荐。

这样我就可以把代码提交到本地仓库,这样如果有人偷了我的电脑,我的代码就不会丢失了?

没有,现在只是暂时提交到本地仓库,还没有提交到远程。电脑丢了代码,还是会丢。

接下来,让我们做最后一步:

Git pull提取远程代码。这一步的目的是防止代码冲突。如果这个分支机构只是你个人操作,这一步可以省略,因为不会有冲突。

但是,如果不止一个人在经营同一家分行,他们提交的代码可能会冲突。

冲突,顾名思义,就是大家修改的矛盾。Git服务器无法判断应该保留哪个版本的代码,因此需要人工干预。

冲突可能会让一些初学者很头疼,下面的文章中会单独提到。

Git push origin new-branch向远程提交本地仓库代码。

好了,今天到此为止!

树类型

看看新的分店。

按照下面的操作,直接提交就行了,很简单也很蠢。

其实可视化工具很好用,但是这个要看个人习惯。

带着许多问题提交。

当然,一切都很顺利,但在实际发展中,总会出现一些不尽如人意的情况。

然后一步步分析每一步中的问题以及如何解决。

撤消本地修改操作

Git status查看当前文件状态。

git checkout-xxx.java取消单个文件的本地修改。当然,如果它已经被添加到临时存储区,这个命令是无效的。您需要通过下面的git重置头xxx.java取消添加操作,然后才能修改被撤销的文件。

Git执行了Git Checkout-xxx.java,然后再次执行git status,发现本地没有修改过的文件,也就是本地的修改已经被撤销了。

Git checkout branch-name这个命令可以用来切换本地分支,记住要区分

撤消添加到临时存储区的操作(绿色字变为红色字)

Git status查看当前文件状态。

在git add操作之后,它被添加到本地临时存储区,并变成绿色。

撤消绿色:撤消对临时存储区的添加操作。

Git重置头xxx.java这是取消添加到某个文件。如果没有后续文件,实际上就是把刚刚添加的文件全部取消。

在我们执行它之后,我们发现原来的绿色文件(已经添加的文件)变回了红色文件,然后取消了just add操作。

撤消对本地库的提交操作。

在执行添加和提交操作之后,此时它已经被提交到本地仓库。

Git reset-hardhead命令直接将本地文件回滚到上一次提交的版本,而不管添加和提交操作是否已经执行。

事实上,添加和提交的撤销可以直接用git reset命令来完成,但是这个命令携带了代表不同含义的不同参数。git reset[-mixed-soft-hard]commit id有三个参数,所以你熟悉这三个参数的含义。

- mixed代表取消git add和git commit的操作,保留编辑器的代码;

- soft代表取消git提交,不取消git添加操作,同时保留编辑器的代码;

-hard参数非常暴力。您可以直接取消提交和添加操作,并取消所有更改的代码。当您决定使用-hard参数时,这意味着您应该已经决定放弃所有修改过的代码。

* *取消远程推送* *

当我们执行推送操作时,意味着代码已经被推送到远程位置。事实上,这种情况需要更少的回滚。一般情况下,提交的代码不需要再次回滚。如果有错,再修改一遍再提交就行了。

当然git也有这方面的考虑。git加入了版本号的概念来解决这个问题,即每次推送都会产生一个对应的版本号,我们可以利用版本号进行相应的回滚。

通过git日志查看历史提交记录

保留目标版本号,即想要返回的版本号。如果git log不能正常显示中文,执行命令set LESSCHARSET=utf-8。

撤销本地代码到目标版本号,git reset-hard 547 c 78001 FD 2 e 0 eedf 83382 ef 4 ee 2974 e 9 f 445d 1。此时,本地代码已经切换回该版本号对应的代码。

强制提交,覆盖远程代码。git push - force完成这一步后,对应版本号的代码已经提交,对应的代码已经回滚。

慎重投稿!重置命令会擦除您提交的版本号之后的所有提交版本,所以要小心。

实际上,还有另一种形式的回滚,称为git revert,它不同于git reset。事实上,git revert类似于git reset。

重置和恢复之间的区别

举个例子吧。比较好理解。

比如现在依次有版本1,2,3。重置将会消失修改后的版本ID之后的所有版本。我执行git reset 1,然后所有版本2和3都会消失。revert被视为新提交的版本。执行git revert 1后,会保留2和3的代码生成新的版本4,然后提交版本4,所以这两个版本的原理是不一样的。

如果reset返回到某个提交,则该提交和前一个提交将被保留,但这一个之后的更改将被返回到临时存储区。

Revert是生成一个新的提交来取消某个提交。本次提交前的提交会被保留,可以理解为删除相应版本的代码重新提交。

reset的作用是修改磁头的位置,也就是把磁头指向的位置改成以前的版本,如下图所示。假设我们回到第一版。

适用场景:如果您想要恢复到以前提交的版本,并且我们不希望在该版本之后提交任何版本,您可以使用此方法。

**revert原理:git revert用于反转某个版本,以便撤销对该版本的修改。* *我们提交了三个版本1、2、3,突然发现版本2不行了。如果我们想取消版本2,但又不想影响版本3的提交,可以使用git revert命令取消版本2,生成一个新的版本4,保留版本3的内容,但取消版本2的内容。

使用场景:如果我们想要取消一个之前的版本,但是想要保留目标版本之后的版本,并且记录这个版本的变更过程,可以使用这个方法。

弄清楚两者的关系后,其实就可以根据相应的业务场景使用相应的命令了。这两个命令一定要小心使用,尤其是reset的回滚版本,因为git会删除对应版本之后的版本。

简而言之,回滚版本时要谨慎。

取一个新的分支

命令行类型

切换基本分支:首先切换到要拉动的分支。一般来说,我们的开发中可能会有很多基于***ster的pulls,所以先切换到***ster(git checkout ***ster)。

创建一个本地分支:git checkout -b new-branch

提交到远程:git推送原点新分支

设置:git pull提取远程分支代码,发现它是不相关的,OK让我们这样做。

git branch-set-upstream-to = origin/new-branch new-branch建立关联,第一个new-branch是远程分支名称,第二个是本地名称。

Git再拉,成功

* *资源类型* *

* *冲突解决* *

工作中冲突的解决是不可避免的。工作就是合作,合作就是你在同一个分支修改代码,哪怕是在不同的分支。最终你修改的代码会合并到对应的在线分支,合并到在线分支的时候可能会有冲突。

比如在idea中需要合并dev和***ster两个分支,需要将dev合并到***ster,切换到dev分支,执行git pull将本地代码更新到最新。

Git checkout ***ster切换到***ster分支,执行git pull更新最新代码,执行gitmerge-no-ff dev(切换到目标分支执行合并操作)。

如果有冲突,直接通过idea解决就好了。这里会出现一个冲突解决按钮。点按“转到”以查看哪些文件有冲突。

然后点击每个冲突文件,选择想要保留的文件,最后点击右下角的应用进行应用。

记住,此时你的想***处于合并状态。当你解决了所有对应的冲突后,就可以按照正常的修改代码提交了,也就是上面提到的添加提交推送操作。

实际上,解决冲突的工具或方法有很多种。每个人都有自己的代码比较工具来解决它们。使用命令行或sourceTree进行合并时,会出现冲突。我最常使用idea git工具来解决冲突。可以选择自己的代码比较工具来解决冲突和合并。

本文来自心已碎♂无心醉投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/542716.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 05-11
下一篇 05-11

相关推荐

  • 申请认定教师资格需要提交哪些材料

    申请认定教师资格需要提交的材料:身份证明;学历证书或者教师资格考试合格证明;教育行政部门或者受委托的高等学校指定的医院出具的体格检查证明;思想品德、有无犯罪记录等方面情况的鉴定及证明材料。认定教师资格,应当由本人提出申请。 教育行政部门和受委托的高等学校每

    2023-07-16 18:57:01
    254 0
  • 百度推广开户需要提交的材料 浅谈百度推广开户流程

    在高科技飞速发展的今天,我们每个人都离不开互联网、电脑、***。想把生意做大做强,很多创业者和老板都会选择网站做推广,而我们大部分创业者和老板都不知道怎么开户。其实开户流程很简单。直接联系客服信贷,GameBank客服会指导你。如果你需要自己的业务资质开户,那么你需

    2023-07-05 05:09:01
    526 0
  • 百度提交入口登录(百度地图提交入口地址)

    导读:为了更好的收录网站,各大搜索引擎都推出了网站投稿入口,提高搜索引擎与网站的数据连接。这个通道就此打开。只要是投稿搜索引擎都会按照标准进行处理,国内主流的搜索引擎是百度、360、搜狗,那么相对的投稿入口是百度网站投稿入口/360网站投稿入口/搜狗网站投稿入口。

    2023-06-26 06:39:01
    946 0
  • gitee怎么提交作业

    1、勾选时会提示关注服务号,手机扫码显示的公众号界面内点击“快速绑定我的Gitee帐号,绑定成功后即可。2、gitee账户申请和安装git我就不写了,可以百度一下 21 填写仓库名称这个应该是必填的22 选择 “是否开源”,这里有两个选择分别是 “私有” 和 “公开”,一般情况是选

    2023-06-25 00:25:01
    443 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信