首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git常用命令参考手册

0} 文件状态 # 完整查看文件状态 git status # 以短格式给出输出 git status -s # 忽略子模块 git status --ignore-submodules # 显示已忽略的文件...# 默认以贡献者分组进行输出 git shortlog # 列出提交者代码贡献数量, 打印作者和贡献数量 git shortlog -sn # 以提交贡献数量排序并打印出message git shortlog...修复子模块分支 当把一个包含子模块的仓库克隆下来后会发现子模块分支不对,可以使用下面命令纠正: git submodule foreach -q --recursive 'git checkout $...git subtree 劣势: 命令过于复杂, 推送拉取都很麻烦 虽然用于替代子模块, 但使用率并没有子模块广泛 子仓库和主仓库混合在一起, 历史记录相当于有2个仓库的记录 git subtree 命令用法...每次 push 到子仓库里头时会花费大量的时间来重新计算子仓库的提交。并且因为每次 push 都是重新计算的,所以本地仓库和远端仓库的提交总是不一样的,这会导致 git 无法解决可能的冲突。

1.4K60

公共模块管理之 Git Submodule 使用总结

以世界上最好的语言 JavaScript 的伴侣 npm 为例,开发者编写一个公共模块,作为 npm package 发布,不仅可在自己的项目间复用,还可以贡献到开源社区,使更多的开发者受益。...使用者使用起来也极为简单,一条命令搞定: $ npm install 1.2 git 子模块管理工具 submodule git submodule 能够在项目主工程中添加子工程模块...其实在 git submodule 之前,我们也许都曾有过相似的经历:开发一个新项目,需要用到团队的公共库,但是又不想把公共代码提交到自己的项目时,会考虑在当前工作目录下,将公共模块文件夹加入到 .gitignore...2.4 删除 submodule 首先,使用 git submodule deinit 命令卸载子模块: # --force 参数将同时删除子模块工作区内的修改 $ git submodule deinit...其他说明 3.1 使用 foreach 批量操作 若一个项目中有多个子模块需要执行相同的操作,每次切换到对应的目录挨个执行效率太低,此时可以使用 git submodule foreach <command

5.7K180
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    7.11 Git 工具 - 子模块

    到目前为止,当我们运行 git submodule update 从子模块仓库中抓取修改时,Git 将会获得这些改动并更新子目录中的文件,但是会将子仓库留在一个称作 “游离的 HEAD” 的状态。...如果你没有提交子模块的改动,那么运行一个子模块更新也不会出现问题,此时 Git 会只抓取更改而并不会覆盖子模块目录中未保存的工作。...也就是说,如果子模块的历史已经分叉并且在父项目中分别提交到了分叉的分支上,那么你需要做一些工作来修复它。...子模块技巧 你可以做几件事情来让用子模块工作轻松一点儿。 子模块遍历 有一个 foreach 子模块命令,它能在每一个子模块中运行任意命令。 如果项目中包含了大量子模块,这会非常有用。...我们在 Git 别名 介绍了设置 Git 别名,但是如果你计划在 Git 中大量使用子模块的话,这里有一些例子。 $ git config alias.sdiff '!'"

    1.5K20

    Git 12 岁了,送给你 12 个 Git 使用技巧!

    别名不仅仅是运行其他Git子命令——你也可以定义别名,这些别名可以运行其他shell命令。...当你在某分支上工作时间长时,但如果你最终因为某种原因需要rebase时,那么跳过每个变基后的提交以确保你没有意外引入一个中断是有些冗长乏味的。...基于时间修改的指南 很多Git子命令都接受一个修正的参数来决定命令作用于仓库的哪个部分,可能是某次特定的提交的 sha1 值,或者一个分支的名称,又或者是一个符号性的名称如 HEAD(代表当前检出分支最后一次的提交...您还可以将这些基于日期的修改参数与使用修正参数的任何 Git 子命令一起使用。在 gitrevisions 手册页中有关于具体使用哪种格式的详细信息。 12....运行 git reflog 将在本地工作副本中显示当前分支的所有活动的列表,并为您提供每个提交的 SHA1 值。

    88360

    Git 12 岁了,为你送上 12 个 Git 的使用技巧!

    然后,你在这个仓库中提交会使用你单独配置的这个邮箱地址。如果你使用一个工作的电脑在开源项目中工作,但是希望在这个项目中使用个人的邮箱地址,而其他在主Git配置中仍然使用工作邮箱,这一点是非常有用的。...别名不仅仅是运行其他Git子命令——你也可以定义别名,这些别名可以运行其他shell命令。...当你在某分支上工作时间长时,但如果你最终因为某种原因需要rebase时,那么跳过每个变基后的提交以确保你没有意外引入一个中断是有些冗长乏味的。...11、基于时间修改的指南 很多Git子命令都接受一个修正的参数来决定命令作用于仓库的哪个部分,可能是某次特定的提交的 sha1 值,或者一个分支的名称,又或者是一个符号性的名称如 HEAD(代表当前检出分支最后一次的提交...您还可以将这些基于日期的修改参数与使用修正参数的任何 Git 子命令一起使用。在 gitrevisions 手册页中有关于具体使用哪种格式的详细信息。

    84650

    常用 Git 命令总结

    “索引”保存工作树内容的快照,并且将该快照作为下一个提交的内容。...因此,在对工作树进行任何更改之后,并且在运行 git commit 命令之前,必须使用 git add 命令将任何新的或修改的文件添加到索引。 该命令可以在提交之前多次执行。...# 查看所有修改、已删除但没有提交的文件,进入一个子命令系统 $ git add -i [] $ git add --interactive [] git branch...# 列出本地的所有分支,当前所在分支以 "\*" 标出 $ git branch # 列出本地的所有分支并显示最后一次提交,当前所在分支以 "\*" 标出 $ git branch -v...# 强制删除指定的本地分支 $ git branch -D git checkout 更新工作树中的文件以匹配索引或指定树中的版本。

    1.1K10

    【Git】Git 命令参考手册

    提交更改 2.1 显示工作目录中已修改的文件,准备提交 $ git status 2.2 将文件添加到暂存区,准备提交 $ git add [文件名] 2.3 将所有已修改的文件添加到暂存区,准备提交...别名]/[分支] # 仅使用快进 $ git merge --ff-only [别名]/[分支] 6.3 推送本地分支到远程仓库 $ git push [别名] [分支] 6.4 拉取并合并远程仓库的最新提交...Git Submodule 25.1 添加子模块 $ git submodule add [repository_url] [路径] 25.2 初始化和更新子模块 $ git submodule update...--init 25.3 更新子模块 $ git submodule update --remote 25.4 删除子模块 $ git submodule deinit [路径] $ git rm [路径...Git 性能优化 27.1 清理仓库历史 $ git gc --aggressive 27.2 删除不需要的分支 删除本地和远程不再使用的分支,以保持仓库的整洁和性能。

    28610

    webpack5 + webpack-chain 构建一个大型应用系列 2(附 vscode 跟 prettier 配置)

    webpack5 更像是一个黑盒了,好多之前必须要用插件来完成的工作,现在 webpack5 内部已经被集成了,开箱即用。...内部模块 tree-shaking webpack5 会检查都模块内部的方法是否被使用,如果没有被使用的话,那么会把模块内部调用的方法也会被删除 但是前提是你要知道这些代码是无副作用的,不然很有可能将你的代码删掉...{js,jsx}": ["webpack-box lint eslint", "git add"] } } 课题 13:配置别名 在我们工作中,如果一个文件需要被 copy 到另外一个目录下,那么这个文件的引用依赖就可能发生路径错误...本章概要 在项目中使用别名 配置别名 webpack 实现 编译器跳转配置 在项目中使用别名 src/main.js import { cube } from "....("@", resolve("src")).set("@src", resolve("src")); }; }; 编译器跳转配置 如果您使用的是 ts 的话,那么配置别名了之后会失去类型,提示找不到模块

    4K51

    Git 工具 - 子模块: submodule与subtree的使用

    git日常使用中,基本都是一个项目一个Git仓库的形式,那么当我们的代码中碰到了业务级别的需要复用的代码,我们一般怎么做呢? 比如:某个工作中的项目需要包含并使用另一个项目。...而父项目以Submodule的形式包含子项目,父项目可以指定子项目header,父项目中会的提交信息包含Submodule的信息,再clone父项目的时候可以把Submodule初始化。...  递归更新整个项目submodule:git submodule foreach git pull 删除子模块:git rm --cached subModulesA    rm -rf subModulesA...Git的子仓库原理分析 如果不是很了解底层原理,很可能会导致使用子仓库出现云里雾里的现象,搞不清楚是父级仓库先提交,还是子仓库先提交 git submodule原理分析 我们知道Git底层大致依赖了四种对象...在暂存区所以我们才发现了new commits这种提示语,Git并不关心子模块的文件如何变化,我只需要在当前提交中记录子模块的commit的hash值即可,之后我们从父级仓库拉取子仓库的时候,Git拉取了本次提交记录中的子模块的

    2.8K10

    Git -- 入门这一篇就够了 (入门必备,超硬核)

    git没有对该文件进行管理, 对于已跟踪未修改的文件,此时还没有提交到仓库,则为未暂存状态(unstaged) 在学习GIt的时候,会有一个疑问:为什么不进行将修改的代码或添加的文件从工作区直接提交到仓库呢...,你会无所适从不知道哪个版本包含哪些功能实现, 情景二: 假设要开发模块B,但是模块A出现了Bug,那就要先修改提交模块A的bug版本,再进行模块B的开发,这样可以提高历史的清晰性, 还有一个疑问,为什么不修改一个文件...,提交一次仓库呢,那有没有想过,如果是这样,会大大增加工作量,修改一个文件需要提交一次,使用暂存区则在开发好后,选择需要提交的文件进行提交....commitId更简短( 从十几位数字变为七八位) –graph 以图的形式显示 七、别名配置 在项目开发中,如果想实现一个指令,但是代码很长,那怎么让他用较短命令实现呢,我们可以使用别名。...打开用户目录创建.bashrc文件 放入代码(在各种语言都有类似的alias设置别名): 代码: alias 自定义命令 = '命令' 例子: #用于输出git提交日志 alias git-log

    39130

    Git Submodule简单使用

    Git Submodule 近期用到了这个命令,主要是为了实现在一个git仓库中,引入其他git仓库,这种适用于你想在主工程中引入其他library库,主工程以submodule的形式包含子工程,子工程可以有自己的...new file: android 然后添加子模块: git add .getmodules android git commit -m "add android submodule." git submodule...提交submodule的内容到远程: git add . git commit -m "嵌入React Native" git push 提交后,看下Submodule在主工程中的变更: cd .. git...在主工程根目录运行以下命令: git submodule foreach git pull 还需要更新下submodule: cd android git pull ok,这样其他团队成员就能拉到最新的工程代码啦...更多参考 使用Git Submodule管理子模块

    65830

    Git Submodule的介绍与使用

    Git 仓库作为另一个 Git 仓库的子目录 , 它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立 开始使用 1.添加子模块 git submodule add //如果不指定本地路径 默认放在当前目录下 2.如果子模块代码有修改需要同步至远程仓库 进入到子模块目录下, 指定分支: git checkout master //这里以master分支为例 然后...两者效果都是一样的 注意:如果你的子模块内部也包含了一个子模块, 你可以使用: git submodule foreach git submodule update 进行遍历更新 4.如果你要删除子模块...1.删除.gitsubmodule里相关部分 2.删除.git/config 文件里相关字段 3.删除子仓库目录。...# 从该项目中抓取所有数据并检出父项目中列出的合适的提交(指定的提交)。

    1.1K30

    git config 学习笔记

    Git 是一个强大的分布式版本控制系统,它通过灵活的配置选项来适应各种工作环境和用户习惯。git-config 是 Git 用来管理和存储配置信息的工具,这些配置信息影响着 Git 命令的行为。...别名 •alias.:为 Git 命令设置别名,简化命令输入,提升工作效率。...笔者常用的别名配置: 颜色设置 •color.ui、color.diff、color.status 等:控制 Git 输出的颜色。...•core.gitProxy:为特定域设置 Git 代理命令。 子模块 •submodule..url:指定子模块的 Git 仓库地址。•submodule.....update:定义更新子模块时的行为。 其他 Git 还提供了许多其他配置选项,如邮件设置、服务器信息、图形用户界面选项等,以满足不同用户的需求。

    9710

    【GIT版本控制】--高级GIT配置

    配置Git别名可以提高工作效率,特别是对于那些频繁使用Git命令的开发者。通过自定义别名,你可以根据自己的工作流程和需求来简化和优化Git命令。...你可以在仓库的.git/hooks目录中创建或编辑这些脚本,以在提交、推送、合并等操作时执行特定的任务。常见的Git钩子包括pre-commit、pre-push、post-merge等。...自定义Git命令: 你可以编写自定义Git命令,以执行特定的操作。这需要创建一个可执行文件,并将其放置在系统的可执行路径下。通过这种方式,你可以添加新的Git命令,以简化工作流程或执行复杂的任务。...自定义提交模板: 通过配置Git提交模板,你可以强制要求开发者在提交时提供特定的信息,例如提交信息的结构、格式或必填字段。...这些高级配置选项可以让你更好地控制和管理Git的行为,以满足特定工作流程和项目的要求。不过,在使用这些自定义配置时,务必谨慎,并确保团队成员了解和遵循这些配置,以维护一致性和协同工作。

    18130

    Git常用命令参考手册

    false # 配置 git pull 时默认拉取所有子模块内容 git config submodule.recurse true 命令别名配置 # git st 等价于 git status git...# 默认以贡献者分组进行输出 git shortlog # 列出提交者代码贡献数量, 打印作者和贡献数量 git shortlog -sn # 以提交贡献数量排序并打印出message git shortlog...rebase -i HEAD~5 # 操作最近前5条提交记录 git rebase -i e88835de # 或者以 commit_id 进行操作 参数 描述 p, pick 保留当前commit,默认...head git submodule foreach -q --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule...-cached common # 清除子模块缓存 git commit -am "Remove a submodule" && git push # 提交代码并推送 更新子模块代码是比较头疼的事,所以分开来讲

    2.4K30

    Git实战

    Tittle名称自由发挥 克隆工程 将远程的数据复制一份到本地 #【仓库copy地址】 git clone [git@rep.xx.com:zoeminghong/hello.git] [工程别名...检查文件中每一行代码是谁提交的记录 git blame -L [起始行数],[文件名] 创建分支 #以当前节点作为分支的开始起点 git branch [分支名] #以SHA1作为分支开始起点 git...–date short 子模块 保留子组件的现有目录结构的完整性,故而git创造了类似于maven中的module一样的功能,来实现子模块的管理 打个比方:现在我有一个父工程A,其工程路径下面有五个子工程...现在有了gitmodules就可以直接下载A工程就可以了,其他的5个子工程都会自动下载。...添加子模块 git submodule add [远程仓库地址] [相对于父模块的相对路径] 注: 直接手动更改gitmodule文件是没有用的哦 远程仓库地址要先于子模块之前准备好 子模块的名称是可以与

    87010
    领券