由于 Github 和公司 Git 使用账号不一样,偶尔没注意,提交出错后就需要修改 commit 信息。
本文主要记录 git commit 几个常用用法,日常开发中,这几个参数基本够用了
•这里由于提交自己的代码第一次提交到A分支,第二次提交B分支,然后报错了,这里报错以后,会提示一个百度自己内部的链接,你点击链接就可以照着提示去修改,可以说还是省了不少事,不用自己去google百度去解决,开发效率也提高不少•上面图片中有6e8713f is CR parent commit 这行提示,划重点,待会要用到。
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波
使用这个命令可以自动将修改或删除的文件进行更新到缓存区,然后在进行提交,即此命令实际上包括了两步操作,先将修改或删除的文件add更新,再提交,需要注意,这个命令不会将新添加的文件更新到缓存区。
写这篇并不是详细的去写一下关于版本控制和 Git 使用的详细教程,而是整理一下 Git 入门、GitHub 常规使用、Gitee 常规使用以及在工作中常见的一些操作。
一、Configuration:配置 列举所有的别名与配置 git config --list Git 别名配置 git config --global alias. git config --global alias.st status 设置git为大小写敏感 git config --global core.ignorecase false 二、Help:常用的辅助查询命令 在git 命令行里查看everyday git git help everyday 显示git常用的帮助命令 git help -g 获取Git Bash的自动补全 ~/.git-completion.bash && echo '[ -f ~/.git-completion.bash ] && . ~/.git-completion.bash' >> ~/.bashrc 设置自动更正 git config --global help.autocorrect 1 三、Remote:远端仓库配置 获取所有远端引用配置 git remote 或者 git remote show 修改某个远端的地址 git remote set-url origin URL Repo 查看当前仓库中的所有未打包的objects和磁盘占用 git count-objects --human-readable 从object数据库中删除所有不可达的object git gc --prune=now --aggressive 四、文件类操作 ,Cache:缓存,Track:文件追踪, 展示所有被追踪的文件 git ls-files -t 展示所有未被追踪的分支 git ls-files --others 展示所有被忽略的文件 git ls-files --others -i --exclude-standard git check-ignore* git status --ignored Manipulation:操作 停止追踪某个文件但是不删除它 git rm --cached <file_path 或者 git rm --cached -r <directory_path 强制删除未被追踪的文件或者目录 git clean -f git clean -f -d git clean -df 清空.gitignore git clean -X -f Changes:修改 Info:信息查看 查看上次提交之后的未暂存文件 git diff 查看准备用于提交的暂存了的修改的文件 git diff --cached 显示所有暂存与未暂存的文件 git diff HEAD 查看最新的文件版本与Stage中区别 git diff --staged dd:追踪某个修改,准备提交 Stage某个文件的部分修改而不是全部 git add -p Reset:修改重置 以HEAD中的最新的内容覆盖某个本地文件的修改 git checkout -- <file_name> Stash:贮存 Info:信息查看 展示所有保存的Stashes git stash list Manipulation:操作 Save:保存 保存当前追踪的文件修改状态而不提交,并使得工作空间恢复干净 git stash 或者 git stash save 保存所有文件修改,包括未追踪的文件 git stash save -u 或者 git stash save --include-untracked Apply:应用 应用任何的Stash而不从Stash列表中删除 git stash apply <stash@{n}> 应用并且删除Stash列表中的最后一个 git stash pop 或者 git stash apply stash@{0} && git stash drop stash@{0} 删除全部存储的Stashes git stash clear 或者 git stash drop <stash@{n}> 从某个Stash中应用单个文件 git checkout <stash@{n}> -- <file_path> 或者 git checkout stash@{0} -- <file_path> Commit:提交 检索某个提交的Hash值 git rev-list --reverse HEAD | head -1 Info:信息查看 List:Commit列表 查看自Fork Master以来的全部提交 git log --no-merges --stat --reverse master.. 展示当前分支中所有尚未合并到Master中的提交 git cherry -v master 或者 git cherry -v master <branch-to-be-merged> 可视化地查看整个Version树
Git 命令对于程序员的你来说再熟悉不过,但是发现好多小伙伴都是会一些基本的提交流程,当遇到问题的时,查到的命令还不敢用,总是请教组里那几个精通 Git 的小伙伴。本文对 Git 使用过程中常出现的问题进行总结并且对 Git 的一些误区概念说明了一些,看完后记得自己尝试下,希望你也能成为组里被请教的那 个 Git 小能手。
这样虽然新的 commit 没有这段内容了,但老的 commit 里依然有这个内容。
安装应该不用多说了,主要讲一下升级。Linux 和 Mac 都有包管理器,升级是很方便的,关键是 windows 并没有这类东西,那么怎么升级呢?
如果我们希望能够快速了解或体验一下 Git 的操作的话,我这里推荐搭建前往这个网站进行学习,其不需要我们安装工具,而且我们的每一步操作都可以在右侧实时看到状态,对于我们学习和理解 Git 工作方式和原理非常有帮助的。—— 欢迎光临 => https://oschina.gitee.io/learn-git-branching/
这是程序锅对之前学习和使用 Git 做的一份整理,后头继续使用和学习 Git 的话,还会更新这份内容
原文:https://www.escapelife.site/posts/f6ffe82b.html
在正式 git 之前,我们先来了解一下 git 的 3 个区域,分别是工作目录、暂存区、版本历史。这个知识点是尤为重要的,在理解了这三个区域之后,git 的操作才会显得很容易。
git 的设置文件为 .gitconfig ,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)
从本质上来讲 Git 是一个内容寻址(content-addressable)文件系统,并在此之上提供了一个版本控制系统的用户界面。
[commit id] 指的是 commit 名,可以通过 git log 查看。
第2.5步 用git status 命令 查看状态(这一步是良好的习惯,但不是必要,这样在修改、删除或者新建的文件比较多的时候能够避免错误)
和 revert 的区别:reset 命令会抹去某个 commit id 之后的所有 commit
技术群里有朋友问了一个比较常见的问题:“提交代码的时候描述有什么规定嘛”? 对于这个问题,相信大多数人都认为 too simple。 描述一下这次改了什么内容不就好了吗?
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
前面的几篇博客都已经讲了commit的基本用法了,现在我们简单地回顾下commit的用法。
前段时间完成了一个核心代码保护的功能,目标是在关键代码被修改及时同步给其他人,避免没经过 review 就上线导致问题,提示的效果图如下:
有时候我们在git commit后才发现,之前的一些提交有些问题,比如有些代码忘提交了或者有一些typo需要修改。如果要修改的地方是需要添加到最后一次提交上的,那么可以参考我的这篇博文修改,如果是在非最后一次提交上的,那么就需要用git rebase来操作。这里简单记录一下操作的过程。
有的时候我们会突然发现某个地方需要修改,最常见的某个不应该被提交的文件被提交了进来。我们希望它不只是在后续的版本当中不再出现,而是希望整个从git仓库当中移除掉。这个时候我们就需要修改git之前的历史记录。这个时候应该怎么办呢?
由于以下修改本身是对版本历史的修改,在需要push到远程仓库时,往往是不成功的,只能强行push,这样会出现的一个问题就是,如果你是push到多人协作的远程仓库中,会对其他人的远程操作构成影响。通常情况下,建议与项目远程仓库的管理员进行沟通,在完成你强制push操作后,通知其他人同步。
作者:matrix 被围观: 1,925 次 发布时间:2022-04-01 分类:Linux | 3 条评论 »
当你设置好gitosis(使用gitosis来配置管理git服务器端)后,就可以使用git来管理你的项目了。
现在,假定你已经完全掌握了暂存区的概念。下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。
课程链接:https://live.juejin.cn/4354/yc_Git-posture
我们有时候会出现频繁提交代码的问题,可能多个commit id 实际上一个作用,为了让git log看起来更清晰,我们会将多个commit id 合并成若干个commit id. 这就涉及到git rebase -i. 通过这条命令,我们可以修改git 提交的顺序, 或者是删除某个commit , 修改某个commit 信息, 下面就详细介绍git rebase -i。
许多时候,在使用 Git 时,可能会因为某些原因想要修正提交历史。 Git 很棒的一点是它允许你在最后时刻做决定。 你可以在将暂存区内容提交前决定哪些文件进入提交,可以通过 stash 命令来决定不与某些内容工作,也可以重写已经发生的提交就像它们以另一种方式发生的一样。 这可能涉及改变提交的顺序,改变提交中的信息或修改文件,将提交压缩或是拆分,或完全地移除提交 - 在将你的工作成果与他人共享之前。
支持使用 merge 的开发者,他们认为仓库的提交历史就是记录实际发生过什么,它是针对于历史的一个文档,本身其实是有价值的,我们不应该随意修改。我们改变历史的话,就相当于使用“谎言”来掩盖实际发生过的事情,而这些痕迹是应该被保留的。可能,这样并不是很好。
除此之外,还可以下载《progit》——这是最棒的Git学习资料,而且有中文版本。
暂存区(stage / index): 保存了下次将提交的文件列表信息, 一般存放在 .git目录下 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
提交代码时 , 需要先 执行 git add 命令 将文件添加到 " 暂存区 " , 然后执行 git commit 命令 将文件提交到 " 版本库 " ;
把要提交的文件的信息添加到暂存区中。当使用 git commit 时,将依据暂存区中的内容来进行文件的提交。
创建本地仓库(最好先创建一个目录,在该目录下输入指令创建git仓库),创建完成后该目录下会存在一个.git文件
一、基本概念: 1.工作区 git项目的文件夹 2.版本库 .git文件,包括: - stage(或者叫index)的暂存区:git add把文件添加进去,实际上就是把文件修改添加到暂存区。 - master分支:初始化出来的分支。git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。 - HEAD指针:master的指针。 二、常见命令 1.git init 在文件目录下执行命令,会将文件夹设置为git仓库,并生成一个.git文件,用于保存本地的提交信息等。 2.git add
在使用git协同工作时,偶然也会遇到commit错误的时候,针对最后一次commit错误的情况,应该如果修改处理呢?
本文适合总觉得git操作不够顺滑,被各种分支问题搞得焦头烂额的Java业务开发同学。
有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit --amend。
Git(全局信息追踪器)。 Git是一个分布式版本控制工具,Git的使用中仓仓库不是必须的,用户本地就是一个完整的版本仓库,代码的前进、回退、删除等等操作都可以直接在本地进行,不需要中央仓库。但是,在实际操作中,为了能够和其他同事快速沟通以及合并代码,一般还是会搭建一个中央仓库。Git对分支的管理非常友好,可以快速创建或者合并分支。 Svn集中式的版本控制工具,Svn中,必须要有中央仓库,所有的版本信息都保存在中央仓库中,代码的前进、回退、删除等等操作都需要在中央仓库中进行,用户本地保存的只是版本仓库的一个副本,Svn中的分支非常臃肿。
1.在工作目录中添加、修改文件; 2.将需要进行版本管理的文件放入暂存区域 3.将暂存区域的文件提交到版本仓库
message信息格式采用目前主流的Angular规范,这是目前使用最广的写法,比较合理和系统化,并且有配套的工具。
实际过程中有的时候本地配置信息邮箱有误,导致git commit 提交作者的信息有误,这个时候就需要进行修改
领取专属 10元无门槛券
手把手带您无忧上云