git clone 将存储库克隆到新创建的目录中,为克隆的存储库中的每个分支创建远程跟踪分支(使用 git branch -r 可见),并从克隆检出的存储库作为当前活动分支的初始分支。...> # -b 指定要克隆的分支,默认是master分支 $ git clone -b git commit 将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中...系统级的配置文件:在 Git 的安装目录下(Mac 系统下安装目录在 /usr/local/git)的 etc 文件夹中的 gitconfig。 git diff 用于显示提交和工作树等之间的更改。...# 比较当前文件和暂存区中文件的差异,显示没有暂存起来的更改 $ git diff # 比较暂存区中的文件和上次提交时的差异 $ git diff --cached $ git diff -...-staged # 比较当前文件和上次提交时的差异 $ git diff HEAD # 查看从指定的版本之后改动的内容 $ git diff # 比较两个分支之间的差异
diff 差异比较 git difftool 调用图形化差异比较工具 git fetch 获取远程版本库的提交 git format-patch 创建邮件格式的补丁文件。...git receive-pack 执行 git push 命令时在远程执行的命令,用于接受推送的数据 git send-pack 执行 git push 命令时在本地执行的命令,用于向其他版本库推送数据... 或 git pull 命令时在远程执行此命令,将对象打包、上传 6、邮件相关命令 命令 简要说明 git imap-send 将补丁通过 IMAP 发送 git mailinfo 从邮件导出提交说明和补丁...显示某个文件是否设置了某个属性 git checkout-index 从暂存区拷贝文件至工作区 git cherry 查找没有合并到上游的提交 git diff-files 比较暂存区和工作区,相当于...git diff –raw git diff-index 比较暂存区和版本库,相当于 git diff –cached –raw git diff-tree 比较两个树对象,相当于 git diff –
如存储库位于本地计算机上, 则自动设置.git/objects/info/alternates为从存储库获取对象将已存在存储库用作备用存储库将需从正在克隆的存储库中复制更少对象, 而降低网络和本地存储成本...--separate-git-dir= # 不要将克隆的存储库放置在它应该存在的位置, 而应将克隆的存储库放置在指定的目录中,然后创建一个与文件系统无关的...仅在将工作树与索引进行比较时才能使用 … # 给出的参数用于将diff限制为指定的路径...# 默认情况下,指向从远程存储库下载的对象的标签将在本地获取并存储 --refmap= # 在获取命令行中列出的ref时,使用指定的...取消注册工作树中的所有子模块 -b, --branch # 将存储库的分支添加为子模块 -f, --force # 该选项仅适用于添加
里然后再commit git commit -a -v 一般提交命令 git log 看你commit的日志 git diff 查看尚未暂存的更新 git rm a.a 移除文件(从暂存区和工作区中删除...diff 差异比较 git difftool 调用图形化差异比较工具 git fetch 获取远程版本库的提交 git format-patch 创建邮件格式的补丁文件。...git receive-pack 执行 git push 命令时在远程执行的命令,用于接受推送的数据 git send-pack 执行 git push 命令时在本地执行的命令,用于向其他版本库推送数据...显示某个文件是否设置了某个属性 git checkout-index 从暂存区拷贝文件至工作区 git cherry 查找没有合并到上游的提交 git diff-files 比较暂存区和工作区,相当于...git diff –raw git diff-index 比较暂存区和版本库,相当于 git diff –cached –raw git diff-tree 比较两个树对象,相当于 git diff
在本文中,我们将与您分享一些可以改善您的git体验和工作流程的技巧。 git log - 不合并 这个git命令显示整个提交历史记录,但是会跳过合并两个分支的提交或解决合并冲突。...如果你想恢复命名的提交,并避免自动提交,你可以使用标志 - 无提交或简写-n。 git diff -w Git diff 显示两个提交,两个工作树或磁盘上的两个文件之间的变化。...当多个人在同一个项目上工作时,由于文本编辑器的选项卡和空间设置,经常会有变化。 为了在比较行时忽略由空白引起的差异,可以将其与-w标志一起使用。...insertions(+), 40 deletions(-) git reset --soft HEAD ^ 在不改变索引文件和工作树的情况下将头重置为某条记录提交。...这使您可以将任何隐藏的更改应用到更安全的环境中,稍后可以将其合并到主环境中。 git branch-a 它显示了所有远程跟踪和本地分支的列表。
git commit -m “xxx” 就是「将 index 里的内容提交到本地仓库中」 remote repository:是「远程仓库」,当我们使用git push命令时就会将本地仓库的代码上传至远程仓库...当我们在存储库中运行git init时,Git会为我们创建示例Hook文件,我们可以根据需要编辑或替换它们。这些示例文件以.sample为扩展名。...在脚本中,我们可以执行任何自定义操作,例如检查代码、验证提交消息、运行测试等。 ---- git diff git diff命令后通常需要跟两个参数,参数1是要比较的旧代码,参数2是要比较的新代码。...中的代码最新提交版本 git diff HEAD^ 是比较 workspace 与最新commit的前一次commit的差异,与git diff HEAD的是不同的 git diff HEAD~2 是比较...提交对象的内容告诉我们,它包含一个哈希为658524b859ae78d902597253a3b68b4da3b70466的「树对象」(tree object),这看起来就像我们在提交时添加的另一个对象。
常用操作的关系: image.png 下面这个图则展示了工作区、版本库中的暂存区和版本库之间的关系: image.png 图中左侧为工作区,右侧为版本库。...当对工作区修改(或新增)的文件执行 "git add"命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的 ID 被记录在暂存区的文件索引中。...当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。...或者 "git checkout HEAD " 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。...# 从远程库中克隆 git clone -b branchName reposityUrl # 克隆指定分支 pull 1 git pull 从远程仓库拉下来到本地库然后合并相当于git
Git备忘单 介绍 开发人员和开源软件维护人员团队通常通过 Git(一种支持协作的分布式版本控制系统)管理他们的项目。 此备忘单样式指南提供了对在 Git 存储库中工作和协作有用的命令的快速参考。...分行 Git 中的分支是指向存储库中提交之一的可移动指针,它允许您隔离工作并管理功能开发和集成。...a-branch..b-branch 查看参考日志 ( reflog) 以了解分支提示和其他参考在存储库中的最后更新时间: git reflog 通过其提交字符串或哈希以更易读的格式显示 Git 中的任何对象...为了实现这一点,您的工作树需要保持干净: git revert 1fc6665 有时,包括在 rebase 之后,您需要重置您的工作树。...在您自己的存储库上工作时要谨慎使用,并在合作时努力避免这种情况。
查看Git命令的帮助信息,git --help 1.Git 工作区、暂存区和版本库(以本地举例)、远程仓库 工作区:就是你在电脑里能看到的目录。...当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。...当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。...(2)暂存区这个索引文件里面包含的是文件的目录树,像一个虚拟的工作区,在这个虚拟工作区的目录树中,记录了文件名、文件的时间戳、文件长度、文件类型以及最重要的SHA-1值,文件的内容并没有存储在其中,所以说...7. git diff,比较差异 git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异。
master 分支的引用向前移动了一下而已 在提交树上移动 HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录,大多数修改提交树的 git 命令都是从改变 HEAD...将变化更新到当前工作中 git fetch git merge/rebase/cherry-pick origin/master git pull 当远程分支中有新的提交时,你可以像合并本地分支那样来合并远程分支...这看起来 C1 中的工作是在 C3 之后进行的,但实际上是在 C3 之前。一些人喜欢保留提交历史,就可以选择 merge;其他人喜欢干净的提交树,于是选择 rebase。...当你克隆时,git 会为远程仓库中的每个分支在本地仓库中创建一个远程分支 (比如 origin/master)。...在 windows 和 linux 之间切换开发时,文件权限可能会发生变更 (0644 0755), diff 时产生大量的 file mode 变更记录会严重干扰对比,通过配置忽略文件权限位变化
reset --soft HEAD * # 重置到指定状态,不会修改索引区和工作树 git reset --hard HEAD * # 重置到指定状态,会修改索引区和工作树 git reset...结果 git diff # 比较Worktree和Index之间的差异 git diff --cached # 比较Index和HEAD之间的差异 git diff HEAD...# 比较Worktree和HEAD之间的差异 git diff branch # 比较Worktree和branch之间的差异 git diff branch1 branch2 #...比较两次分支之间的差异 git diff commit commit # 比较两次提交之间的差异 git diff master..test # 上面这条命令只显示两个分支间的差异...从上游的存储库中提取分支以及各自的提交内容。
git diff 当需要查看任意两棵树的差异时你可以使用 git diff 命令。...在 确定引入了哪些东西 一节中,了解了使用 git diff A...B 语法来更有效地比较不同分支之间的差异。...在 高级合并 一节中我们使用 -b 选项来过滤掉空白字符的差异,及通过 --theirs、--ours 和 --base 选项来比较不同暂存区冲突文件的差异。...最后,在 开始使用子模块 一节中,我们使用此命令合 --submodule 选项来有效地比较子模块的变化。 git difftool 当你不想使用内置的 git diff 命令时。...git fetch git fetch 命令与一个远程的仓库交互,并且将远程仓库中有但是在当前仓库的没有的所有信息拉取下来然后存储在你本地数据库中。
git 实践总结 toc Git 官方中文文档 概念 远程库 Remote 本地库 Repository 缓存区 Index/Stage 工作区 workspace 我们在工作区中修改文件, 改动完成之后...,但工作区中不会变 --hard: 缓存区和工作区中的修改都会被撤销 撤销中间某次的修改 git revert commit-id 撤销远程分支的更改 情况1, 撤销最近的几次递交 #先将本地分支reset...作用:如果不适用bare, 远程库本身工作在某个分支,如master,本地库向远程库push master分支时,可能会产生冲突。 所以默认情况下push会被拒绝。...与某个版本比较,指定 --cached 则是将Index 与某个版本比较 常见用法 git diff # 比较 工作区和Index的所有文件差异 git diff --cached...#可见生成的tree对象是相同的,这种方式更方便 在Git中,每个子目录都对应一个tree对象,每个文件对应一个BLOB对象,因此整个工作目录对应一棵Git对象树,根节点就是commit对象所引用的tree
介绍 开发人员和开源软件维护人员团队通常通过支持协作的分布式版本控制系统Git来管理他们的项目。 这个备忘单样式指南提供了对在Git存储库中工作和协作有用的命令的快速参考。...git commit --amend -m "New commit message" 分行 Git中的一个分支是指向存储库中某个提交的可移动指针,它允许您隔离工作并管理功能开发和集成。...git log a-branch..b-branch 查看引用日志(reflog)以查看分支和其他引用的提示何时在存储库中最后更新。...您可以通过Git文档更全面地了解它。 比较暂存区域中的已修改文件。 git diff --staged 显示在a-branch但不在b-branch上内容的差异。...在处理自己的存储库时谨慎使用,并在协作时避免这种情况。
-u [] 当前目录中安装Repo.将会创建一个.repo目录,其中主要包含用于repo源代码和标准android清单文件的git存储库. repo目录还包含manifest.xml, 它是...选项: -u: 指定从检索清单存储库的URL.常见的manifest可以在https://android.googlesource.com/platform/manifest找到 -m:选择存储库中的清单文件...如果只想上传当前检出的git分支,可以使用标志--current-branch (or –cbr 简写). diff ---- repo diff [] 在使用git diff的提交和工作树之间显示了突出的变化...-p: 在输出指定的命令之前显示项目标题,这是通过管道绑定到命令stdin,stdout和sterr流实现的,并将所有输出管道连接到一个连续的流中,该流将显示在单个会话中....指定哪些项目将参与这个主题分支 注意: 是当前工作目录中项目的有用缩写 status ---- repo status [] 将工作树与临时区域(索引)进行比较,并在指定的每个项目中对该分支(HEAD
init git init 创建空的Git存储库或重新初始化现有的Git存储库 add git add * 将文件内容添加到索引 mv git mv -f file newfile 移动或重命名文件、目录或符号链接...reset git reset --hard HEAD^ 将当前磁头重置为指定状态 rm git rm your_file 从工作树和索引中删除文件 bisect 使用二进制搜索查找引入错误的提交...your_branch 切换分支或还原工作树文件 commit git commit -m "your_der" 记录对存储库的更改 diff git diff file 显示提交、提交和工作树等之间的更改...、列出、删除或验证用GPG签名的标记对象 fetch git fetch origin 远程分支:本地分支 从另一个存储库下载对象和引用 pull git pull 从另一个存储库或本地分支获取并与之集成...场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作 场景3:已经提交了不合适的修改到版本库时
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。 ? Git版本库 我们先来理解下Git 工作区、暂存区和版本库概念 工作区:就是你在电脑里能看到的目录。...版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。 下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系: ? 图中左侧为工作区,右侧为版本库。...当对工作区修改(或新增)的文件执行 "git add" 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。...当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。...或者 "git checkout HEAD " 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。
分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。...: start a working area (参见命令: git help tutorial) clone 将存储库克隆到新目录中 init 创建一个空的Git存储库或重新初始化一个现有的存储库...、目录或符号链接 reset 将当前磁头重置为指定状态 rm 从工作树和索引中删除文件 examine the history and state (参见命令:...checkout 切换分支或还原工作树文件 commit 记录对存储库的更改 diff 显示提交、提交和工作树等之间的更改 merge 将两个或多个开发历史连接在一起...) fetch 从另一个存储库下载对象和引用 pull 从另一个存储库或本地分支获取并与之集成 push 更新远程引用和相关对象 'git help
# 将所有修改过的工作文件提交暂存区 git rm # 从版本库中删除文件 git rm --cached # 从版本库中删除文件,但不删除文件...git revert HEAD # 恢复最后一次提交的状态 查看文件diff git diff # 比较当前文件和暂存区文件差异 git diff git diff # 比较两次提交之间的差异 git diff ..... # 在两个分支之间比较 git diff --staged # 比较暂存区和版本库差异 git diff --cached # 比较暂存区和版本库差异 git diff --...git 存储库中的问题。
git mv a.txt b.txt 当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。...即 master 指向的目录树就是提交时暂存区的目录树。 当执行 “git reset HEAD” 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。...或者 “git checkout HEAD ” 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。...---a表示修改之前的文件,+++b表示修改后的文件 #比较暂存区的文件与之前已经提交过的文件 git diff --cached 也可以把WorkSpace中的状态和repo中的状态进行diff,命令如下...: #比较repo与工作空间中的文件差异 git diff HEAD~n ?
领取专属 10元无门槛券
手把手带您无忧上云