精华内容
下载资源
问答
  • 而不是commit然后直接push? 情况是这样的,现在远程有一个仓库,分支就一个,是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都...

    转载:https://www.cnblogs.com/leiblog/p/11138497.html

    【Git版本控制】为什么要先commit,然后pull,最后再push?而不是commit然后直接push?

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

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

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

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

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

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

    答:本地分支属于本地仓库里,是包含关系,一个仓库里可以有很多分支

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

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

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

    答:这个先 commit 再 pull 最后再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,不然真的会覆盖代码的

    6,两个分支A和B,A合并B和B合并A,有区别吗?

    答:两个互相合并的唯一区别就是 A->B 的时候 B 分支上会产生一个 merge_commit ,被改变的分支是 B ;如果现在没有发生任何改动执行 B->A ,则A和B两分支才会完全相同。

    展开全文
  • git基础:先pull,再commit,再push。 现在的方式:每次写之前先pull,写完push前也先pull 问题分析如下: 现在远程有一个仓库,分支就一个,是master。本地的仓库是从远程的master上clone下来的,再在自己本地改...

    备注:

    发表到CSDN做为转载文章。git基础:先pull,再commit,再push。


    现在的方式:每次写之前先pull,写完push前也先pull

    问题分析如下:

    现在远程有一个仓库,分支就一个,是master。本地的仓库是从远程的master上clone下来的,再在自己本地改好,再commit → pull → push。

     

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

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

     

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

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

     

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

    本地分支属于本地仓库里,是包含关系,一个仓库里可以有很多分支, 如果是 tag 的话可以分离出独立的仓库

     

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

    肯定不会全量推送到远程的,是通过对比 commit 的记录,如果本地高于远程就直接把多出来的commit 给怼上去,如果本地的这几个 commit 和远程的 commit 有冲突的部分就merge,然后根据提交时间排序再新建一个merge 的 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 这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的

     

    6,两个分支,A和B,A合并B和B合并A,有区别吗?

    两个互相合并的唯一区别就是 A->B 的时候 B 分支上会产生一个 merge_commit 的信息,这个时候 B 是合并状态而 A 未合并状态,如果现在没有发生任何改动执行 B->A 就直接切换过去了,连 merge_commit 都不会生成了

    展开全文
  • git合并commitpush

    2020-05-29 14:29:21
    commit a9b1c282864d9957a6c425cb74a954dfe682a308 (HEAD -> master, origin/master) Author: JemyCheung <zhangwei@qiniu.com> Date: Fri May 29 14:14:02 2020 +0800 v1.1.0 commit bfa6f171fd...

    查看提交日志

    git log
    

    在这里插入图片描述

    commit a9b1c282864d9957a6c425cb74a954dfe682a308 (HEAD -> master, origin/master)
    Author: JemyCheung <zhangwei@qiniu.com>
    Date:   Fri May 29 14:14:02 2020 +0800
    
        v1.1.0
    
    commit bfa6f171fd67075642abd9fbf6f78274d7d08833
    Author: JemyCheung <zhangwei@qiniu.com>
    Date:   Fri May 29 14:13:12 2020 +0800
    
        v1.1.0
    
    commit c028236477dfd48865b59f261bd5f78004589ddc
    Author: JemyCheung <zhangwei@qiniu.com>
    Date:   Fri May 29 14:11:54 2020 +0800
    
    
        v1.1.0
    
    commit efe18568bde0d8e4944a3915e19a3afc4efc1644 (tag: v1.1.0)
    Author: JemyCheung <zhangwei@qiniu.com>
    Date:   Fri May 29 14:11:16 2020 +0800
    
        v1.1.0
    
    

    四次提交,多次commit不好看,我想合并到最新的代码,只保留一个commit记录

    rebase操作

    rebase到第一个(最早)commit

    git rebase -i efe1856
    

    按i进入编辑模式
    将第一个保留pick,其他改为s(squash)
    在这里插入图片描述
    按wq保存退出,会进入commit记录的message,直接dd删除不用的记录就好了,建议保留第一条
    在这里插入图片描述
    在这里插入图片描述
    再次wq保存退出

    git push提交commit

    如果是提交到自己仓库

    git push origin master --force-with-lease
    

    如果是pr到别人的仓库

    git push --force-with-lease
    

    看一下前后效果
    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 截至目前为止已经涉及到好几个镜像和容器了,现在要将一个已经修改过配置的tomcat的docker容器给提交生成一款新的镜像,并且这个镜像可以推送至阿里云服务器上,后续再...相关的docker命令分别为commitpush。 将...

    http://www.chendd.cn/information/viewInformation/experienceShare/297.a

    截至目前为止已经涉及到好几个镜像和容器了,现在要将一个已经修改过配置的tomcat的docker容器给提交生成一款新的镜像,并且这个镜像可以推送至阿里云服务器上,后续再拉取的时候直接拉取自己的镜像。相关的docker命令分别为commit与push。

    将容器提交为镜像

    我们运行的容器可能在镜像的基础上做了一些修改,有时候我们希望保存起来,封装成一个更合适的镜像,此时我们就需要使用到docker提供的commit命令,语法为:docker commit 容器名称 新镜像名称:标签(如果标签不存在则表示为最新的latest),下面我们就将本地中使用的8003的tomcat为基础生成一个tomcat-console的镜像,参考过程如下:

    blob.png

    blob.png

    blob.png

    至此,将容器提交为镜像的过程已完成,上述命令参考为:docker commit tomcat9016 tomcat-console:9.0.16。

    将镜像提交至阿里云

    (1)登录阿里云账号,找到“产品与服务”-->“容器与镜像服务”;

    blob.png

    blob.png

    (2)开通容器与镜像服务,点击确认按钮,设置用户密码;

    blob.png

    (3)创建命名空间,本文命名为chend-demo(少了个d),并设置为公有;

    blob.png

    (4)创建镜像仓库,需要先有命名空间,下一步下一步完事儿,本例仓库名称为:tomcat9016;

    blob.png

    blob.png

     

    blob.png

     

    (5)push本地镜像,本例以commit提交的tomcat-console镜像为例,提交至阿里云;

    ①查看本地现有的镜像文件;

    blob.png

    ②登录至阿里云镜像服务,使用阿里云账号登录,使用上面开头镜像服务设置的密码,非登录阿里云密码;

    blob.png

    ③设置需要提交至阿里云的镜像,本例的 d65563351e42 表示的就是待提交的镜像ID;

    blob.png

    ④将镜像提交至阿里云;

    blob.png

    blob.png

    (6)镜像推送成功,阿里云中查询到的镜像ID与本地推送时的一致,且从公开镜像中搜索发现已经可以搜索到;

    blob.png

    blob.png

    (7)从阿里云中pull自己的镜像;

    blob.png

    阿里云镜像cao作指南

    请登录阿里云的容器镜像服务,点击镜像仓库列表数据的管理链接,在基本信息页可以查看到关于当前镜像信息的相关cao作命令,以上阿里云的相关cao作皆是从这里一步一步来的。

     


    至此,关于docker的系列文章已经完结,至于docker compose的相关使用还没有入手,待往后看是否再行整理。

    展开全文
  • 而不是commit然后直接push? 情况是这样的,现在远程有一个仓库,分支就一个,是master。然后我本地的仓库是从远程的master上clone下来的。大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都...
  • 今天遇到一个头疼的问题本地写好了一些东西,但是没有提交,忘记了,切换到另一个分支上,然后就提交了,但是没有push 1问题来了,如何取消我的提交呢,我做的操作只是提交到了本地仓库,并没有提交到git远程仓库...
  • 大家都是clone下来,再在自己本地改好,再commit然后pull然后push,大家都是这么做的。那么现在问题来了: 1,那我本地这个也算是个分支?还是就是一个本地仓库? 答:本地和远程的关系相当于两个分支,你感觉一样...
  • git add/ git commit/ git push的区别
  • Git的add、commitpush命令

    万次阅读 多人点赞 2017-11-17 22:38:02
    Git的add、commitpush命令
  • 背景 使用git来进行版本控制,发现自己多...今天抽了点时间来看一下这方面,就是关于自己commit但是还没有push的操作。具体在命令行操作和IDEA 页面操作给出结论。先来解释几个术语 HEAD: 这是当前分支版本顶端的别...
  • 1. 现在我想将最近两次的已经commit的记录合并成一个commit 2. 选择这两条最早的一次提交记录,右键选择 Interactively Rebase from Here… 3.弹出框如图,将最新一次提交改为squash,然后点击Start Rebasing ...
  • 本地的仓库是从远程的master上clone下来的,再在自己本地改好,再commit → pull → push。 1,那我本地这个也算是个分支?还是就是一个本地仓库? 本地和远程的关系相当于两个分支,你感觉一样是因为你git pull 的...
  • Git的add、commitpush的详细介绍

    千次阅读 2021-01-05 00:30:13
    git commit -m ‘注释’ 将缓存区内容添加到本地仓库 git pull origin master先将远程仓库master中的信息同步到本地仓库master中 git push origin master 将本地版本库推送到远程服务器, origin是远程主机,master...
  • 如图所示,右下角,选择Amend Last Commit选项,然后会自动显示上次提交的内容文案,左边列表也会显示上次提交的内容,想追加备注可以直接修改,想的话,直接点击commit按钮,相当于你的新修改追加在了最后一次...
  • git项目在commit过后没有push,怎么单独push 直入正题 当你想提交代码到服务器上时没有点commit and push 而点了commit过后怎么再次push呢? 直接在命令行输入git push即可 ...
  • git submodule 升级commitpush 关于这个问题,起始可以参照以下文章: https://blog.csdn.net/wwj_748/article/details/73991862 流程写的很清楚,本文章记录一点,即在submodule的git push操作。 文章中是以...
  • 最近在提交代码的时候碰到一个问题,代码commitpush到远程仓库后发现提交人的信息有误,远程仓库显示的提交人不是我。虽然这对于开发来说并无大碍,但身为强迫症的我怎么能忍?但代码已经push到远程仓库了,怎么...
  • git commitpush到远程仓库 后悔药 别名命令 git config --global alias.hist ‘log --pretty=format:"%C(auto)%h %ad | %C(auto)%s%d %Cblue(%an)" --graph --date=short’ alias.别名 git reflog 可以查看所有...
  • Git取消add 、 commitpush的命令

    千次阅读 多人点赞 2020-12-18 14:09:31
    撤销已经add,但是没有commit...撤销已经commit,但是没有push到远端的文件(仅撤销commit 保留add操作) git reset --soft HEAD^ 查看状态 查看没有git add的文件 git checkout 查看当前提交状态 git status ...
  • 废话多说,直接上图: 工具栏VCS->Git->Reset HEAD… 点进去是这个样子的: 想撤回上次commit就在To Commit栏输入HEAD~1,撤回前两次就是2,依次类推,也可以点击Validate浏览需要撤回的地方。 ...
  • 碰到这种情况,git也知道哪行内容是需要的,所以要自行确定需要的内容。 解决完成之后,就可以正常的提交了 git pull 后再 (5)把已经修改的文件push到服务器,git push --tags...
  • 首先,通过git log 或者直接去GitHub上对应提交下面,拿到在我commit之前的最后一次push成功的版本号,先把本地代码回到这次的版本下面 通过 git reset --soft 版本号 可以实现保留本地代码,只回退到某..
  • 1 把自己的代码copy到本地库上面去。 2 查看状态 ...# Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>...
  • pushcommit的区别

    2017-04-22 22:49:00
    pushcommit的区别 git作为支持分布式版本管理的工具,它管理的库(repository)分为本地库、远程库。git commit操作的是本地库,git push操作的是远程库。git commit是将本地修改过的文件提交到本地库中。git ...
  • 解决IntelliJ中GitCommit and Push问题

    千次阅读 2010-03-01 14:57:58
    IntelliJ的Git插件还是不错的,而且已经集成到了... 在InetelliJ中,默认打开的Git工程,是能够Commit And Push的,要解决需要手工设置一下Branch,右键你的module: Git => Current Branch,选择相应的Trac...
  • u,后面我们再次提交分支得时候就直接使用第二种方式就可以了 $ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以加任何参数使用git push。 $ git push -u ...
  • 比如有个文件 build.xml 1、cd到文件或者文件夹的目录 2、git rm -r --cached build.xml(文件名)   git rm --cached foldername(文件夹... 版本库的意思就是已经commit但是没有pushcommit后会存在于  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,615
精华内容 33,846
关键字:

不commit直接push