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

Git 总结

log 历史线 # 通过 git status 你看到目标与现在的差异,改动了哪些文件,这些处于缓存区,修改为你满意的后,就可commit,中间的commit看起来没有存在过一样 git reset...的时候,从 .gitmodules 读取子模块信息,然后生成配置文件到 .gitgit submodule init # 从远程检出子模块代码, 即下载 commit 引用 对应的文件内容 git...--recursive 添加仓库 git submodule add 其中,仓库地址是指子模块仓库地址,路径指模块放置在当前工程下的路径。...cat .git/config 检出(checkout) 克隆一个包含仓库的仓库目录,并不会clone下子仓库的文件,只是会克隆下.gitmodule描述文件,需要进一步克隆子仓库文件。...GitClone - GitHub缓存加速网站,开发者服务 补充 git commit emoji 表情 gitmoji | An emoji guide for your commit messages

1K40

每日问题

答: 最初更改settings.json然后保存没生效,所以我在怀疑这恶搞文件有没有被执行。...对于非二进制文件的冲突解决,git会给出冲突的位置我们可以手动修改然后再commit。但是对于二进制文件无法手动编辑,我们只能用下面的办法取其中的一个版本。...git checkout --ours采用当前更改 git checkout --theirs采用传入的更改 例如: $ git merge B #试图B分支合并到A分支上,会提示test.docx...合并冲突 $ git checkout test.docx --ours #保留A分支(当前分支)上的改动 $ git add test.docx #提交改动后的文件 $ git commit...node上绑定事件; 结果只有点击父node才可以触发,点击node触发,这跟我们前面总结h5中的表现不一样啊???

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

Git 进阶使用1

Merge master 分支合并到 feature 分支最简单的办法就是用下面这些命令: git checkout feature git merge master 或者,你也可以把它们压缩在一行里...git submodule update 更新子模块远程项目的最新版本 git submodule update --remote 克隆包含模块的项目 克隆包含模块的项目有二种方法:一种是先克隆父项目...# 合并(start,end]之间的提交,包含start git cherry-pick start-commit-hash..end-commit-hash # 合并[start,end]之间的提交...commit包含更改,创建一个撤消这些更改的新提交,并将新提交附加到现有项目 git revert HEAD~2 工作流将是现在这样: 对比与git reset,后者确实会改变现有的提交历史;...--filter来首先避免在 git clone 时下载对象 比如针对这样一个示例仓库,仓库中的内容包含10个10MB文件的大目录 包含1000个1B大小文件的小目录 我们就可以使用以下方式仅仅获取到

70641

Git常用命令参考手册

--global core.editor nano # 默认差异化分析工具设置 vimdiff git config --global merge.tool vimdiff # 编辑当前仓库配置文件...2、编辑目录下的 .gitmodules 文件把需要删除的子模块删除掉 # 最后直接推送 git add -A git commit -m "删除子模块" git push 克隆一个包含模块的仓库...# 递归抓取子模块的所有更改,但不会更新子模块内容 git pull # 这个时候需要进入子模块目录进行更新, 这样就完成了一个子模块更新,但是如果有很多子模块就比较麻烦了 cd git-manual...main --squash 推送到仓库 假如修改了仓库里的内容,可以修改这部分的内容推送到仓库中 # 需要先在主仓库把子仓库的代码暂存 git add sub/common git commit.../bisectercise 归档 创建一个归档文件,可以理解当前项目压缩一个文件。

1.3K60

发布 Go Modules

切换到包含 go.mod 的目录,然后创建 repo: $ git init $ git add LICENSE go.mod go.sum hello.go hello_test.go $ git commit...语义版本的形式 vMAJOR.MINOR.PATCH。 当您对模块的公共 API 进行向后兼容的更改时,增加主版本。只有在绝对必要时才应这样做。...v1 的主要版本告诉用户,不会对模块的 API 进行兼容的更改。它们可以升级到 v1 新的次要版本和补丁版本,它们的代码不会出现兼容的错误。函数和方法签名不会更改,导出的类型不会被移除,等等。...如果对 API 进行了更改,则它们向后兼容(例如,向 struct 添加一个新字段),并将其包含在新的次要版本中。...Split 字符串分割成由分隔符分隔的所有字符串,并将所有字符串作为切片返回 SplitN 可以用来控制要返回的字符串的数量 但是,Replace 从一开始就计算了要替换的字符串的实例数(不像

71410

Git必备命令-子模块

// 初始化子模块 git submodule update // 更新子模块与主仓库中的子模块代码同步 // or git submodule update --init // or 嵌套的(仓库中包含仓库...在主仓库更改仓库代码并提交方法: 3....更新、拉取仓库代码方法: 父目录中: $ git submodule update // 与主仓库中的子模块代码同步 $ git submodule update --remote // 与仓库中代码同步...在包含模块的项目上工作 从子模块的远端拉取上游修改 如果想要在子模块中查看新工作,可以进入到目录中运行 git fetch 与 git merge,合并上游分支来更新本地代码。...(use "git add" and/or "git commit -a") 默认情况下,git pull 命令会递归地抓取子模块更改,如上面第一个命令的输出所示。

93320

浅析 Git模块

中查找 那么,基于以上几点,如果不得不将第三方源码手动拷贝到项目中,又会带来更多的问题: 第三方库难以和原库保持同步更新 如果对第三方库做出了较通用的更改和补丁等,无法发布到原库中其他人所用 对第三方库做出的修改...,其 git commits 混杂提交到主项目中,难以单独清晰的管理 一个虽然不一定是最好的,但可行的办法是: 1.2 - Git 中的 submodule 子模块(submodule)允许你一个 Git...仓库作为另一个 Git 仓库的子目录; 它能让你另一个仓库克隆到自己的项目中,同时还保持提交的独立 简单的说,子模块的解决方案更像是上面两种的融合,类似于一种特区模式:代码既存在于主项目的文件夹中...更新子模块的命令git submodule update --remote Git 默认会尝试更新所有子模块;如果子模块数量众多,也可以在以上命令中传入需要更新的子模块名称。...git submodule update --remote --rebase 2.5 - 发布子模块变更 因为主项目并不会跟踪子模块中的变更,也就是说子目录中更改的具体业务文件不会在 push 时被自动发布

1.3K10

Git 中当更改一个文件名为首字母大写时

,进行构建,Git 认识到 button.js 大小写发生变化,所有引用 Button.js 的组件发生报错,失败 来重现一下犯错的这个过程: # 刚开始 test 文件是由内容的 ~/Documents...test Test 但是修改文件夹时会出现一些问题: ❝fatal: renaming 'dir' failed: Invalid argument ❞ 使用下边这个笨办法修改: $ git mv...dir DirTemp $ git mv DirTemp Dir 预防方案 那有没有什么预防措施?...「Git 默认是忽略大小写的,如果改成忽略大小写是不就可以了?不行,这样会产生更麻烦的问题。」...更改忽略大小写 [core] ignorecase = false 以下是产生的问题: 「修改文件名时,Git 工作区中一下增加了两个文件,并且无法删除」 「git rm 删除文件时,工作区的两个文件都被删除

1.6K20

GIT 常用快捷命令

提交 git commit -m msg 从远程仓库拉取最新代码 git pull origin master 推送到远程仓库 git push origin master 查看配置信息 git config...运行命令 git config --global merge.tool tortoisemerge TortoiseMerge.exe 设置默认的 merge tool。...patch 未添加到暂存区的更改生成 patch 文件: git diff > demo.patch 已添加到暂存区的更改生成 patch 文件: git diff --cached > demo.patch...合并上面两条命令生成的 patch 文件包含更改git apply demo.patch 将从 HEAD 之前的 3 次 commit 生成 3 个 patch 文件: (HEAD 可以换成 sha1...或 git pull --unshallow 基于某次 commit 创建分支 git checkout -b test 5234ab 表示以 commit hash 5234ab 的代码基础创建分支

1.3K10

这糟糕的git commit记录

有没有这么写过 commit 你是否再也无法忍受随意的风格?每次更新版本都不清楚更新了哪些功能?修复了哪些 bug?溯源的时候非常痛苦?不如试试国际知名项目angular.js的提交规范 ?...使用lumberjack库增加日志模块 2....配置全局配置并接入配置中心 Close #1 其中 type 指提交类型,必选 scope 可选,指 commit 的影响范围,比如会影响到哪个模块/性能/哪一层(业务层,持久层,缓存,rpc),...echo '{"path":"cz-conventional-changelog"}' > ~/.czrc 以后你执行 git cz 就可以替代git commit -m了 $ git add . $...文件来操作,但开源代码无法这样操作,.git 目录也不能提交,husky的方案,可以下载代码后通过node运行时更新hooks文件 我没办法给中心所有项目提出这样的规范,也没办法规定每个人都安装 node

88030

Git|GitHub|SSH|Sourcetree 上篇】Git环境搭建及核心概念学习

它在现有目录中添加一个隐藏的文件夹,所以这里我们需要按下面操作使其显现,该文件夹包含版本控制所需的内部数据结构。...Git 跟踪对开发人员代码库的更改,但有必要暂存更改并拍摄更改的快照,以将其包含在项目的历史记录中。 此命令执行暂存,即该两步过程的第一部分。...git commit 快照保存到项目历史记录中并完成更改跟踪过程。 简言之,提交就像拍照一样。 任何使用 git add 暂存的内容都将成为使用 git commit 的快照的一部分。...Note:git commit -m "commit message",提交时按该指令进行提交 git status 更改的状态显示未跟踪、已修改或已暂存。...js 忽略所有后缀名为.js的文件 Note:git 对于 .gitignore 配置文件时是按行从上到下进行规则匹配的,即如果上面的配置范围较大时,下面的配置可能无效 下面可能无效原因:

1.5K10

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

--global user.email 4.1 解决中文乱码问题 由于是在window系统,或多或少还是会有一些兼容的问题,解决办法: 右键打开git.bash git config --global...暂存区的用处: 可以选择提交文件 情景一: 假设你是开发人员,修改了许多文件,对全部文件进行提交,那有没有想过里面每个文件都是实现不同的模块呢,这一次提交即为一次版本,但是里面修改了许多文件,此时当你回滚历史时...,你会无所适从不知道哪个版本包含哪些功能实现, 情景二: 假设要开发模块B,但是模块A出现了Bug,那就要先修改提交模块A的bug版本,再进行模块B的开发,这样可以提高历史的清晰性, 还有一个疑问,为什么不修改一个文件...是通配符,全部文件添加,也可以指定文件名 查看修改状态 git status 6.5*添加到仓库命令 他的操作是缓存区的文件送往仓库,所以不需要指定文件 git commit -m "add...file01" 6,6 *查看日志命令 git log log 后面其实还有四个可选项 –all 显示全部分支 –pretty=online 所有显示一行 –abbrev-commit 使得输出的

35730

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

模块允许你一个 Git 仓库作为另一个 Git 仓库的子目录。 它能让你另一个仓库克隆到自己的项目中,同时还保持提交的独立。...Git两种子仓库使用方案 git submodule git subtree git submodule(子模块) Git模块允许我们一个或者多个Git仓库作为另一个Git仓库的子目录,它能让你另一个仓库克隆到自己的项目中...,构成了Git对于文件内容追踪的基础: blob: 二进制大文件,可以通俗理解对文件的修改 tree: 记录了blob对象和其他tree对象的修改,通俗理解目录 commit: 提交对象,记录了本次提交的...commit对象, file mode160000,这是Git中一种特殊的模式,表明我们是一次提交的commit记录在Git当中,而非将它记录成一个子目录或者文件。...而这正式git submodule的核心原理,Git在处理submodule引用的时候,并不会去扫描仓库下的文件的变化,而是取仓库当前的HEAD指向的commit的hash值,当我们对子仓库进行了更改

1.9K10

关于Git这一篇就够了

,我们需要使用ls -ah查看隐藏目录 进入目录后可以看到它的相关配置文件 新建文件添加到本地仓库:git add、git commit -m add:文件添加到缓存区 commit:提交到本地仓库...su git 然后使用 ssh-keygen -t rsa -C "你的邮箱" 配置好当前服务器的sshkey ,配置好之后会在用户目录下生成一个.ssh目录 然后在”.ssh”目录里面查看有没有authorized_keys...在中添加一些更改到下一次提交 $ git add -p 提交跟踪文件中的所有本地更改 $ git commit -a 提交先前进行的更改 $ git commit 更改最后一次提交 不要修改已发布的提交...$ git checkout HEAD 还原提交(通过产生具有相反更改的新提交) $ git revert HEAD指针重置上一次提交 …并丢弃此后的所有更改 $ git reset...–hard …并将所有更改保留未分阶段的更改 $ git reset …并保留未提交的本地更改 $ git reset –keep 提交相关更改 提交应该是相关更改的包装。

65710
领券