Git学习 - 2023-06-08

这篇具有很好参考价值的文章主要介绍了Git学习 - 2023-06-08。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git基础

git branch branch-name
# 创建一个新的分支
=========================
git checkout branch-name
# 切换到新的分支
=========================
git log
# 查看所有的commits操作 以及显示对应的hash
git log --online --graph --all 
# 以图像的方式显示出所有commits的操作
=========================
git status 
# 显示工作目录和暂存区域的状态。 
# 它可以让您查看哪些变更已commit,哪些尚未commit,以及哪些文件未被Git 跟踪untracked。 
# 状态输出不显示有关已提交项目历史记录的任何信息
=========================

对于未跟踪的文件,通常分为两类。要么是刚刚添加到项目中但尚未提交的文件,要么是编译后的二进制文件,比如 .pyc、.obj、.exe 等等,或者是运行了什么模型产生的文件。

git show log-hash
# 显示提交的所有内容
=========================
git diff log-hash
# 显示更改的内容
=========================
git branch -a |grep layers
# 显示所有的 远程跟踪的分支和本地分支【包含layers的名字】
=========================
git reset log-hash  
# 回退到指定版本
=========================
git reset --hard origin/master 
# 将本地的状态回退到和远程的一样 
# throw away all my staged and unstaged changes, 
# forget everything on my current local branch 
# and make it exactly the same as origin/master
=========================

git pull --rebase VS git pull

git pull --rebase -->
git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。更新本地仓库

那 merge 和 rebase的区别在哪
Git学习 - 2023-06-08
可以看到merge操作会生成一个新的节点,之前提交分开显示。而rebase操作不会生成新的节点,是将两个分支融合成一个线性的操作。

通过上面可以看到,想要更好的提交树,使用rebase操作会更好一点,这样可以线性的看到每一次提交,并且没有增加提交节点。
在操作中。merge操作遇到冲突时候,当前merge不能继续下去。手动修改冲突内容后,add 修改,commit 就可以了
而rebase操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改add后执行git rebase -continue继续操作。

===========

几种merge的方法

https://www.youtube.com/watch?v=CRlGDDprdOQ
https://morningspace.github.io/tech/git-merge-stories-1/

一开始, master有两个commits。m1 --> m2
然后你拉下来进行,并创建了一个feature branch进行修改,所以你的logs为 m1 --> m2 --> f1 --> f2
但此时 另一个开发者已经对matser进行修改 所以master的logs变成 m1 --> m2 --> m3
此时 你需要如何解决并merge呢。
有几种方法
(1)merge
(2)squash merge
(3)rebase

git rebase master 

就可以把master的东西跟自己的分支合并。【在这之前 需要checkout到master分支,把最新的远程master pull下来】
或者直接用 git pull --rebase origin master 或者是 git pull --rebase

如何把master的内容更新到分支上

https://blog.csdn.net/chen134225/article/details/100128593
当你在work on你的分支的时候,这个时候,很可能远程master的内容已经有更新了。这个时候,必须要把远程的内容更新到你的分支上,如果有conflicts 你需要手动来解决,再push上去。
下面是具体的步骤:
(1)切回master的分支

git checkout master

(2)将远程的master代码pull到本地

git pull 

(3)切换到你的分支下,比如是dev

git checkout dev

(4)合并master到dev分支

git merge master

如果在合并的过程中,提示某文件出现冲突了,手动修改一下这个文件,修改成自己想要内容;然后add和commit一下这个文件。

(5)将本地分支的代码push到远程仓库对应的分支上

git push

或者最简单的方式是直接使用

git pull --rebase

这个会把最新的origin master的code pull下来 跟你现在的分支进行合并。

详尽介绍 git pull

命令查看关联的主机名字

git remote -v
ouput:
origin  git@github.com:jquery/jquery.git (fetch)
origin  git@github.com:jquery/jquery.git (push)

这里关联的主机名字为origin。

git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响。
默认情况下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。

git fetch <远程主机名> <分支名>

比如,取回origin主机的master分支。

git fetch origin master

查看远程所有分支

git branch -r
output:
  origin/3_layers
  origin/ASKEXIT-145.bid_handler_timeout_exp
  origin/ASKEXIT-146.p1
  origin/ASKEXIT-146.p2
  origin/ASKEXIT-146.p3
  origin/AddAgencyEntity
  ...
  ...

补充
有时候分支过多,可以使用这个命令查找你的那个分支

 git branch -r|grep layer
 # 意思是查找所有包含layer的远程分支

查看所有的分支

git branch -a
output:
* new_3layers
  remotes/origin/2275_run_test_env_in_jenkins
  remotes/origin/3_layers
  remotes/origin/ASKEXIT-145.bid_handler_timeout_exp
  remotes/origin/ASKEXIT-146.p1
  remotes/origin/ASKEXIT-146.p2
  remotes/origin/ASKEXIT-146.p3

所以这里的关键点事
远程主机名 --> origin
远程分支名 --> 3_layers
本地分支名 --> new_3layers
当你要pull 拉下来的时候,使用命令

git pull <远程主机名> <远程分支名>:<本地分支名>

比如,取回origin主机的3_layers分支,与本地的new_3layers分支合并,需要写成下面这样

git pull origin 3_layers:new_3layers

如果远程分支是与当前分支合并,则冒号后面的部分可以省略
直接写成

git pull origin 3_layers

如果想要rebase的模式进行merge的话,则直接用

git pull --rebase origin 3_layers

如果存在追踪关系,则直接可以用 git pull
同理,git push也是
但为了理解,还是用全。

git push <远程主机名> <本地分支名>:<远程分支名>
git push origin new_3layers:3_layers

介绍Git的非常详尽的文章
https://www.ruanyifeng.com/blog/2014/06/git_remote.html

如何将一个分支上的修改转移到另一个分支上

https://blog.51cto.com/u_15064646/3690119
复制粘贴的命令

git stash                    //把暂存区内的修改存储起来
git checkout dev             //切换到正确的分支
git stash pop                //将存储的修改取出来

如果已经commit了呢?

git reset HEAD^              // 撤回到刚刚commit之前的状态

再继续上面的复制粘贴

其他命令

将本地的main分支重置到远程版本库:

git reset --hard origin/main

清理任何未被追踪的变化文章来源地址https://www.toymoban.com/news/detail-496027.html

git clean -xdf

到了这里,关于Git学习 - 2023-06-08的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第三节:Git分支管理(关键词:git branch、git checkout、git diff、git merge、查看、创建、切换、对比分支)

    本节涉及Git命令 git branch :列出全部分支 git branch name :创建分支 git checkout name :切换分支 git diff branch1 branch2 :对比两个分支 git diff --quiet branch1 branch2 :对比两个分支是否存在差异,但不显示细节 git diff branch1 branch2 filename :对比两个分支中某个具体文件差异 git merge :合并

    2023年04月08日
    浏览(47)
  • learn git branching学习整理

    learn git branching是一个非常好的git学习网站,它与传统的文字讲解相比较起来有一个非常大的亮点----图形化的git提交树可以实时的反馈并告诉你当前所做的git操作在对于代码管理来说实际意味着什么,这是一个非常好的反馈机制,相比较于直接用命令行来学习git,你会更加了

    2024年02月07日
    浏览(35)
  • Learn Git Branching 学习笔记(Git远程仓库篇)

    目录 一、Git远程仓库篇 1.git clone 在本地创建一个远程仓库的拷贝        2.远程分支 3.git fetch 4.git pull      5.模拟团队合作 6.git push 7.远程库提交历史的偏离     8.远程服务器拒绝!(Remote Rejected) Git的高级话题集合在上一篇文章中Learn Git Branching 学习笔记(高级话题篇)_流年

    2024年02月13日
    浏览(47)
  • (学习日记)2023.06.09

    写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几

    2024年02月15日
    浏览(37)
  • 一点基础、但一直没分清的概念2023/06/28

    模块功能主要由两个命令构成: export 和 import 。 export 命令用于规定模块的对外接口, import 命令用于输入其他模块提供的功能。 export 和 export default 的区别: 一个文件中 export 可以有很多个,但是 export default 只能由一个。 export 暴露的是一个接口,在 import 时不能改变它的变

    2024年02月11日
    浏览(33)
  • Git教程学习:08 Git别名

    Git 并不会在我们输入部分命令时自动推断出我们想要的命令。我们可以通过文件来轻松地 git config 为每个设置一个别名。一些示例: 这意味着,当要输入 git commit 时,只需要输入 git ci 。随着我们继续不断地使用 Git,可能还会经常使用其他命令,所以创建别名时不要犹豫。

    2024年01月19日
    浏览(37)
  • WPF实战学习笔记08-创建数据库

    创建文件夹 ./Context 创建文件 ./Context/BaseEnity.cs ./Context/Memo.cs ./Context/MyTodoContext.cs ./Context/Todo.cs ./Context/User.cs 创建数据对象 ./Context/BaseEnity.cs ./Context/Memo.cs ./Context/MyTodoContext.cs 创建数据库DbSet ./Context/Todo.cs ./Context/User.cs 添加nuget包 Microsoft.EntityFrameworkCore.Design Shared design-time co

    2024年02月16日
    浏览(42)
  • 深度学习面试八股文(2023.9.06持续更新)

    一、优化器 1、SGD是什么? 批梯度下降(Batch gradient descent):遍历全部数据集算一次损失函数,计算量开销大,计算速度慢,不支持在线学习。 随机梯度下降(Stochastic gradient descent,SGD) 每次随机选择一个数据计算损失函数,求梯度并更新参数,计算速度快,但收敛性能可

    2024年02月09日
    浏览(40)
  • 556、Vue 3 学习笔记 -【常用Composition API(五)】 2023.08.25

    Vue3中可以继续使用Vue2中的生命周期钩子,但有两个被更名: beforeDestroy改名为beforeUnmount destroy改名为unmounted Vue3也提供了组合式API形式的生命周期钩子,与Vue2中钩子对应关系如下: beforeCreate === setup() created === setup() beforeMount === onBeforeMount mounted === onMounted beforeUpdate === onBefor

    2024年02月11日
    浏览(38)
  • Git教程学习:06 远程仓库的使用

    为了能在任意 Git 项目上协作,我们需要知道如何管理自己的远程仓库。 远程仓库是指托管在因特网或其他网络中我们项目的版本库。 我们可以有好几个远程仓库,通常有些仓库对我们只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管

    2024年01月19日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包