使用这个命令,用户可以在三个不同级别设置配置: 本地级别:在特定的 Git 仓库中(存储在项目根目录的 .git/config 文件中)。 全局级别:针对操作系统中的当前用户。...该命令还可用于比较分支之间的差异: git diff branch1 branch2 或者用于比较两个提交之间的差异: git diff commitID1 commitID2 为了比较一个特定文件,也可以加上第三个文件名参数...git tag git tag 命令用于创建一个人类可读的标签(例如版本号),用于引用存储库中特定的提交。...oldest_commit^...newest_commit git bisect git bisect 命令用于通过对提交历史记录进行二分查找来分离出特定的提交记录。...git revert commitID git fetch git fetch 命令用于从远程仓库下载引用(包括标签和分支)。它会下载新创建的引用,并完成本地已存储引用的历史记录。
Git rebase操作,避免出现项目分支代码提交记录错乱和浪费存储空间的现象 总结 融合代码到公共分支的时使用git merge,而不用git rebase 融合代码到个人分支的时候使用git rebase...也许它是一个第三方开发的Git 库或者是你独立开发和并在多个父项目中使用的。...因此,应该使用Git revert来撤消公共分支上的更改,git reset仅仅应该被用于撤消专用分支上的更改 Git hook Git hook是仓库中特定事件发生时 Git 自动运行的普通脚本。...内置的样例脚本是非常有用的参考资料,因为每个hook传入的参数都有非常详细的说明(不同hook不一样) hook的作用域 对于任何 Git 仓库来说hook都是本地的,而且它不会随着 git clone...不过,它们确实可以让开发者更易于接受这些规范 常见的 6 个最有用的本地hook: pre-commit pre-commit 脚本在每次你运行 git commit 命令时,Git 向你询问提交信息或者生产提交对象时被执行
通过创建本地副本,你已经按照 Git 配置配置了git,并像将你的存储库链接到上游存储库中所解释的那样,将上游存储库链接了起来。...中继续工作,那么提交将被克隆到你 fork 的存储库的本地分支中 首先确保你的上游指向主要存储库,参考将您的存储库链接到上游存储库 然后,获取更改并创建一个本地分支。...这将把文件放入暂存区,这是一个将添加到您下一个提交的文件队列。只添加具有相关完整更改的文件。将未完成更改的文件留到后续提交。 要将暂存文件提交到您的本地存储库副本中,请执行 git commit。...首先确保你的上游指向主存储库,就像将你的存储库链接到上游存储库一样 然后,获取更改并创建一个本地分支。...首先确保你的上游指向主存储库,就像将你的存储库链接到上游存储库一样 然后,获取更改并创建一个本地分支。
文件:用户目录下的配置文件,只适用于该用户,用git config —global读写 3、xxx/.git/config 文件:当前项目Git目录的配置文件,只适用于当前项目 (这三个文件中的配置,...(本地可以保存多个commit,后一起提交) 4、远程版本库remote repository:commit后的代码push后,就会提交到远程仓库了。...(撤销合并) 15、Cherry-pick 引入更改 git cherry-pick (引入某个提交的修改) git cherry-pick --edit (引入某个提交的修改...> …(引入多个提交) git cherry-pick …(引入从commitID1到commitID1n的所有提交) git cherry-pick...的代码,dev分支就会有两份不同commitID的相同提交,中间还会插一个新的commintID 能够保证清晰的commit记录 适用于:个人未提交远端的commint记录的优化 举例:用rebase
revert git revert 提交命令跟 git cherry-pick 提交命令大致是相同的,但有一个重要区别:它应用给定提交的逆过程。因此,此命令用于引入一个新提交来抵消给定提交的影响。...跟 git cherry-pick 命令一样, revert 命令不修改版本库的现存历史记录。相反它往历史记录中添加新提交。...【左开右闭】 refspec refspec 把远程版本库中的分支名映射到本地版本库中的分支名。...当 ref 提交记录上有某个标签时,则只输出标签名称 钩子 你可以使用 Git 钩子(hook) ,任何时候当版本库中出现如提交或补丁这样的特殊事件时,都会触发执行一个或多个任意的脚本。...通常情况下,一个事件会分解成多个规定好的步骤,可以为每个步骤绑定自定义脚本。当 Git 事件发生时,每一步开始都会调用相应的脚本。
git add * .py 您想要添加具有特定扩展名的文件,并且还想指定目录名,然后您可以运行以下命令。以下命令将添加目录子目录中的所有python文件。...git rm -f 您想要从git存储库中删除文件,而不是从文件系统中删除文件,然后您可以运行此命令。...,但您的本地分支名称与远程存储库分支名称的名称不匹配。...如果要查看特定作者的提交消息,则可以运行以下命令。我假设作者姓名是qianpangzi。...如果您已经将代码推送到远程存储库中,然后您意识到必须amend提交消息,那么在修改之后,您必须进行强制推送。假设您的远程名称,origin您可以运行以下命令。
/dev 目录下 git clone -b dev git@github.com:x-cold/git-learning.git dev 2、将文件变更记录写入到本地的索引库 git add [<options...]] # 提交本地仓库当前分支到远程仓库的 master 分支 git push origin master # 提交本地仓库 dev 分支到远程的 master 分支 git push origin...# 基于当前分支创建 test 分支,并且将当前分支切换到 test 分支 git checkout -b test 除开用于分支切换,checkout 还可以用于恢复未添加到本地工作区,但是被修改过的文件...if( git rebase --abort ) break; } git cherry-pick 魔法级的命令,cherry-pick 可以提取 N 个的提交记录,合入稳定版本的分支上...# 挑选 371c2 单个提交记录,合入当前分支 git cherry-pick 371c2 # 挑选出 371c2 到 971209 的所有提交记录,并合入当前分支 git cherry-pick
/dev 目录下 git clone -b dev git@github.com:x-cold/git-learning.git dev 2、将文件变更记录写入到本地的索引库 git add [的 Git 中的数据流与存储级别的介绍,其中储存级别主要包含几部分: 工作区 (Working Files),指的是我们时刻在编辑的文件的目录,通常来说我们修改文件都是在工作区体现的 暂存区...分支 git checkout -b test 除开用于分支切换,checkout 还可以用于恢复未添加到本地工作区,但是被修改过的文件。...rebase --abort ) break; } git cherry-pick 魔法级的命令,cherry-pick 可以提取 N 个的提交记录,合入稳定版本的分支上。...到 971209 的所有提交记录,并合入当前分支 git cherry-pick 371c2…971209 git push 推送到远程仓库,同步本地仓库的提交历史到远程仓库 git push [<options
在这种情况下, git stash可以帮助你。 stash在本质上会取走所有的变更并存储它们为以备将来使用。...如果你只想留有余地进行apply stash,你应该给apply添加特定的标识符: git stash apply stash@{2} 丢弃stash区的内容 git stash drop 如果想应用stash...cherry-pick命令是我目前为止最喜欢的git命令, 既是因为它的字面意思,也因为它的功能。...pushes to master (up to date) 这时候能够看到b1是stale(污浊,污染)的,使用 git remote prune(剪去) origin 可以将其从本地版本库中去除。...标签可以针对某一时间点的版本做标记,常用于版本发布。
本地分支操作 分支是 git 最重要的概念之一,用好分支是用好 git 的基础。git 的分支非常轻量级,不会造成存储或内存上的开销,所以应该 “早建分支、多用分支”!...git tag git tag 可以永久地将某个特定的提交命名为里程碑,然后就可以像分支一样引用了。更难得的是,它们并不会随着新的提交而移动。...你也不能检出到某个标签上面进行修改提交,它就像是提交树上的一个锚点,标识了某个特定的位置。...将变化更新到当前工作中 git fetch git merge/rebase/cherry-pick origin/master git pull 当远程分支中有新的提交时,你可以像合并本地分支那样来合并远程分支...这里可以举一个实际的例子,大一点的公司都有自建的代码库系统,可以设置代码库是否允许开发者直接提交代码,一般设置为否,需要提交到一个特殊的分支,经过同行评审后再合入到正式分支: git push origin
指向 当前分支/某个提交记录如果head指向分支,在此分支上进行提交后,head会自动移动到最近的提交相对引用^ ~ -f撤销变更Reset被撤销的记录 不会加到暂存库更改不存在 + 提交记录不存在Revert...清除所作的更改 + 保留了提交记录择取记录复制到当前分支 cherry-pick命令名:cherry-pick使用:git cherry-pick 提交号>适用场景:想要把这个提交放到这里,那个提交放到刚才那个提交的后面将...Tag效果:Git 的 tag 可以 永久地将某个特定的提交命名为里程碑,然后就可以像分支一样引用了。特点:它们并不会随着 新的提交而移动。...你也不能切换到某个标签上面进行修改提交,它就像是提交树上的一个锚点,标识了某个特定的位置。——在tag上进行新git commit --amend会创建新分支。...目的:方便理解 本地存储的远程分支状态 和 真实的远程分支状态的差异特别之处:git checkout 到 远程分支时,会自动进入 HEAD分离(HEAD与远程分支分离)的状态,Git 这么做是出于不能直接在这些分支上进行操作的原因
设置和初始化 使用以下命令检查您的 Git 版本,这也将确认安装了 Git: git --version Git 允许您配置一些将应用于本地计算机上所有存储库的设置。...引用特定提交的字符串合并的特定提交: git cherry-pick f7649d0 当您合并了一个分支并且不再需要该分支时,您可以将其删除: git branch -d branch-name 如果您尚未将分支合并到主分支...请注意,某些存储库可能会使用 master而不是 main: git merge upstream/main 将您的本地分支提交推送或传输到远程存储库分支: git push origin main...您可以使用以下命令重置为特定提交,并删除所有更改 : git reset --hard 1fc6665 要将最后一次已知的非冲突提交强制推送到原始存储库,您需要使用 --force: 警告 :master...,让它看起来像当前的上游主分支(也就是冲突太多),你可以执行硬重置: 注意 :执行此命令将使您的本地存储库看起来与上游完全一样。
另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。 ? 一、基本用法 git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。...$ git cherry-pick 上面命令就会将指定的提交commitHash,应用于当前分支。这会在当前分支产生一个新的提交,当然它们的哈希值会不一样。...git cherry-pick命令的参数,不一定是提交的哈希值,分支名也是可以的,表示转移该分支的最新提交。...(3)--quit 发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子。 五、转移到另一个代码库 Cherry pick 也支持转移另一个代码库的提交,方法是先将该库加为远程仓库。...$ git fetch target 上面命令将远程代码仓库抓取到本地。 接着,检查一下要从远程仓库转移的提交,获取它的哈希值。
、或者bug修复;此时可以把本次提交单独合并到目标分支去,而不是执行git merge 合并; 也可以一次合并多个提交 git cherry-pick id1 id2 遇到冲突后,解决git add...git cherry-pick --continue git cherry-pick --abort//发生代码冲突后,放弃合并,回到操作前的样子; 变基 rebase 如下场景 分支1 、分支2...此命令不会更新您的分支。该命令还可用于从另一个提交还原索引中的文件。...,随便吹水的,,,, (1)基本操作大致相同; (2)SVN没有本地库,GIT有本地库; (3)SVN提交代码时只需一次提交(远程库),GitHub需要两次提交(本地库一次,远程库一次); (4)GitHub...由于代码集中管理,存在单点故障,所以需要对svn中央版本库的存储进行备份,而且同时还要备份所有更改的版本记录
add到暂存区,表示将要提交的改动 本地仓库(Local Repository):本地Git仓库,通俗讲就是本地隐藏文件.git目录下,存储着你的所有改动 远程仓库(Remote Repository)...:远程Git仓库,理论上和本地仓库地位平等,但是主要是用于多个开发者之间pull/push代码的仓库。...git rebeae merge 会把公共分支和你当前的commit 合并在一起,形成一个新的 commit 提交 git merge git cherry-pick 对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求...git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。...$ git cherry-pick 上面命令就会将指定的提交commitHash,应用于当前分支。这会在当前分支产生一个新的提交,当然它们的哈希值会不一样。
# 基础 # Git 的三种状态 已提交 (committed) - 数据已经安全地保存在本地数据库中 已修改 (modified) - 修改了文件,但还没有保存到数据库 已暂存 (staged) -...提交更新找到暂存区的文件,将快照永久性存储到 Git 目录 # 配置 # 变量存储位置 /etc/gitconfig 文件:系统上每一个用户及其仓库的通用配置, # 查看所有配置以及她们所在的文件 git...c2 对摘到的提交进行修改 git commit --amend 将被摘提交后面的提交摘到 main 分支 git cherry-pick c3 git tags 永远指向某个提交记录的标识,不随新的提交而移动...,就像提交树上的一个锚点,标识某个特定的位置 git tag v1 c1 # 等价于 git checkout c1 git tag v1 git describe 描述离你最近的标签 git describe...# Q&A # rebase 和 merge 的区别 git rebase 和 git merge 一样都是用于从一个分支获取并且合并到当前分支。
接下来详细聊聊这些命令1、网页版运行git instaweb以立即浏览 gitweb中的工作存储库Git 有一个内置的基于 Web 的可视化工具,用于浏览本地存储库,它允许您通过浏览器中的 GUI 查看和管理您的存储库...例如git grep "foo" HEAD~1将搜索以前的提交。----4、Git 存档用于git archive将整个存储库合并到一个文件中共享或备份存储库时,通常首选将其存储为单个文件。.../my-archive HEAD5、Git 子模块用于git submodule将任何其他存储库拉入您的存储库在 git 中,子模块让您可以将一个存储库挂载到另一个存储库中,通常用于核心依赖项或将组件拆分到单独的存储库中...16、Git 标签使用标记回购历史中的特定点git tag能够标记存储库历史记录中最常用于表示发布版本的特定重要点通常很有用。...19、Git 樱桃采摘用于git cherry-pick通过引用选择指定的提交并将它们附加到工作 HEAD有时你需要从其他地方拉一个特定的提交到你当前的分支。
cat-file 版本库对象研究工具 git checkout 检出到工作区、切换或创建分支 git cherry-pick 提交拣选 git citool 图形化提交,相当于 git gui 命令...git verify-pack 校验对象库打包文件 5、数据传输相关命令 命令 简要说明 git fetch-pack 执行 git fetch 或 git pull 命令时在本地执行此命令,用于从其他版本库获取缺失的对象...git receive-pack 执行 git push 命令时在远程执行的命令,用于接受推送的数据 git send-pack 执行 git push 命令时在本地执行的命令,用于向其他版本库推送数据...参见 git merge 的 subtree 合并策略 git merge-tree 显式三向合并结果,不改变暂存区 git fmt-merge-msg 供执行合并操作的脚本调用,用于创建一个合并提交说明...包含于其他脚本中,提供操作远程版本库的函数 git-sh-setup 包含于其他脚本中,提供 shell 编程的函数库 Git 常用命令速查表 图片 Git命令参考手册(文本版) git init
an, %ar : %s" 使用特定格式来输出 git log master……experiment 查看在 experiment 分支中而不在 master 分支中的提交, 这个用法很好, 可以用于...git cherry-pick 命令 功能 注释 git cherry-pick {commit id} cherry pick 某个特定 commit, 这个就是将 commit 的修改直接叠在当前分支上...id 的前后顺序不重要因为对应的 commit id 会按照时间叠加 git cherry-pick -n {commit id} cherry pick 某个特定 commit 但是不进行 commit...master:hb-dev 将本地库与服务器上的库进行关联 git checkout --track origin/dev 切换到远程 dev 分支 git branch -D master develop...删除本地库 develop git checkout -b dev 建立一个新的本地分支 dev git merge origin/dev 将分支 dev 与当前分支进行合并 git checkout
Git高级教程、Git分支策略、Git交互式重base、Git Cherry-pick使用。 引言 对于现代开发者来说,Git已经成为了版本控制的事实标准。...git checkout -b feature/new-feature 1.2 hotfix分支 用于紧急修复生产中的问题。 git checkout -b hotfix/urgent-fix 2....交互式重base 交互式重base允许您在提交历史中重新排序、编辑、合并或拆分提交。 git rebase -i HEAD~5 3....Cherry-pick 当您想将某个分支的一个或多个提交应用到另一个分支时,可以使用cherry-pick。 git cherry-pick COMMIT_HASH 4....使用Git Hook自动化流程 Git Hook允许您在特定的Git事件(如提交或推送)之前或之后运行脚本,从而实现自动化流程。
领取专属 10元无门槛券
手把手带您无忧上云