草庐IT

【Git】git提交代码到指定分支(远程已有分支和远程没有分支)图文并茂、详细步骤说明

小树ぅ 2023-06-15 原文

1.远程仓库已有分支的情况下提交代码至这个分支 

   问题出现场景:

在公司中部门其他人员已经创建了某个分支,要求我们在这个分支进行开发,这时候我们就遇到了以下问题:我们本地默认是只有master/main分支,那如何提交代码到上述远程分支呢?

   问题解决策略:

第一步:查看本地分支:git branch

 第二步:查看远程分支:git branch -a

 (因为手头没有做示例的git仓库,所以p图假设一下,这里V1.0本地没有的远程分支)

第三步:创建一个本地分支V1.0用来关联远程分支V1.0

               git  checkout  -b  V1.0(分支名,可以随便起)  origin/V1.0

第四步:git branch、git branch -a 查看分支情况

               这时会发现本地和远程分支都已经切换到了V1.0上

第五步: 1.git add .   2.git  commit -m "备注信息"  3.git pull  4. git push

2.远程仓库没有分支,想要创建一个新的远程分支并且将代码提交到这个分支

        问题出现场景:

在上述第一种情况中提到了部门其他人员已经创建了某个分支,要求我们在这个分支进行开发,那么他们在创建这个分支后肯定要将项目代码也提交到这个分支上,然后再给我们开发。所以他们是怎么创建一个新的远程分支并且将代码提交上去的呢?

        问题解决策略:

第一步:查看远程和本地的当前分支:git branch -a 、  git branch

第二步:创建一个本地分支:git checkout -b  V1.1(分支名)

 

 此时再查看本地分支和远程分支,我们发现本地分支切换到了V1.1,但是远程却没有这个分支!

第三步:建立本地分支和远程分支的关联(创建远程分支)

               git push --set-upstream origin V1.1(分支名)

此时再查看远程是否成功创建了V1.1这个分支

看下图可以发现V1.1远程分支已经创建,并且当前分支也切换到了V1.1

这就说明了本地V1.1和远程V1.1分支已经成功关联,可以进行提交代码的操作了!

第四步:拉取、提交、推送  1.git add .     2.git  commit -m "备注信息"   3.git pul   4.git push

 

   如图成功提交代码!

补:当我们commit之后 发现自己的-m" " 的备注写错了 或者突然发现想要提交的代码还有问题需要修改,那怎么撤销commit进行回滚呢?

可以使用命令:git reset --soft HEAD^  这样就成功撤销了commit。

解释:

HEAD^ 表示上一个版本,即上一次的commit,几个^代表几次提交,如果回滚两次就是HEAD^^。也可以写成HEAD~1,如果进行两次的commit,想要都撤回,可以使用HEAD~2。​

--soft不删除工作空间的改动代码 ,撤销commit,不撤销add

​--hard删除工作空间的改动代码,撤销commit且撤销add

​如果commit后面的注释写错了,先别急着撤销,可以运行git commit --amend 进入vim编辑模式,修改完保存即可

另外,在IDEA中直接输入git reset --soft HEAD^会提示more,这是什么意思,又该如何解决呢?

 原因:这是因为cmd控制台中换行符默认是 ^ ,而不是\ ,所以它的 more?的意思是问你下一行是否需要再输入,而 ^ 符号就被当做换行符而被 git 命令忽略掉了。

解决办法:

方法一:加引号:git reset --hard “HEAD^”
方法二:加一个^:git reset --hard HEAD^^
方法三:换成~:git reset --hard HEAD~ 或者 git reset --hard HEAD~1
~ 后面的数字表示回退几次提交(上面1次为例)

 

如果这篇文章帮助到了您,请给博主点个关注和赞吧!

有关【Git】git提交代码到指定分支(远程已有分支和远程没有分支)图文并茂、详细步骤说明的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  3. ruby-on-rails - Rails 源代码 : initialize hash in a weird way? - 2

    在rails源中:https://github.com/rails/rails/blob/master/activesupport/lib/active_support/lazy_load_hooks.rb可以看到以下内容@load_hooks=Hash.new{|h,k|h[k]=[]}在IRB中,它只是初始化一个空哈希。和做有什么区别@load_hooks=Hash.new 最佳答案 查看rubydocumentationforHashnew→new_hashclicktotogglesourcenew(obj)→new_has

  4. ruby-on-rails - 在 ruby​​ .gemspec 文件中,如何指定依赖项的多个版本? - 2

    我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这

  5. ruby - 如果指定键的值在数组中相同,如何合并哈希 - 2

    我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat

  6. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

  7. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  8. ruby - 模块嵌套代码风格偏好 - 2

    我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的

  9. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  10. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

随机推荐