译者 | viktor
翻译者 | 金镇朔
Git 是两个十分强悍的辅助工具,它包涵多样的辅助工具借以保护工程项目。责任编辑他们Sonbhadra看到很多 Git 日常生活采用操作过程中的Sitapur和指示。期望当中的很多文本能对听众有所协助。
Git diff一般来说情形下,他们会在他们的分立组成部分中顺利完成市场需求合作开发,这时就会有市场需求将他们的组成部分和其它组成部分展开对照。那个机能能透过
git diff branch1 branch指示来同时实现。
假如希望对照甲类和现阶段的 HEAD,所以采用
git diff –cached指示会十分方便快捷。一般的 git diff 指示预设对照的是没加到检索中的文档。
恢复正常甲类假如早已将很多文档加进到甲类后又后悔了,Git 提供更多了数个指示来同时实现那个机能,具体文本须要依照彼时情形TNUMBERA0512Ci。
git rm path/to/file –cached指示将文档从甲类检索中删掉,但依然会将文档留存在组织工作产品目录。这比间接采用
git rm file -f指示全然删掉文档会安全可靠一点儿。
Git reset假如期望恢复正常很多早已递交的更动,他们能采用
git reset指示。该指示有很多相同的犯罪行为,因而须要依照前述情景展开采用。
假如期望的是去除所有修改,包括检索中的文本和组织工作产品目录中的修改,所以能采用
git reset –hard假如仅仅是期望重置检索,所以能采用
git reset –mixed指示,这也是 git reset 指示的预设犯罪行为。混合的重置会留存现阶段组织工作产品目录中的更动。最后,假如仅仅期望修改组成部分的 HEAD,能透过
git reset –soft同时实现。
当运行 git reset 指示的时候,他们能指定多个目标文档作为参数传入。当然能透过
git reset –hard COMMIT_ID恢复正常到指定的递交版本。
Git stash大家应该对 git stash 指示并不陌生,它能透过 git stash pop 指示方便快捷的将之前的更动恢复正常回来。然而,假如组织工作产品目录中有未追踪的文档,预设情形下是不会将其存入临时储藏区的。为了能临时保存未追踪的文档,能采用
git stash –include-untracked指示。另外两个十分有用的指示是
git stash list它能列出临时储藏区中的文本。
历史记录Git 自带了十分强悍的辅助工具来查看工程项目以及特定文档的变更情形。我个人十分喜欢用当中的两个命令:
git log –graph –decorate –oneline借以展示经过修饰的递交历史。那个指示十分冗长,因而我建议能为它创建两个别名(这可能是所有技巧中最有用的,因为很多指示都比较难记)。git log 指示能显示 HEAD、所有递交的 ID 以及组成部分信息。有了这些信息之后,他们能采用
git show COMMIT_ID/HEAD/BRANCH指示来显示更详细的信息。
有的时候他们须要了解谁对两个文档做了哪些更动,这正是
git blame path/to/file指示所提供更多的机能。
之前提到过 git diff 指示,它也是两个查看历史的辅助工具。例如,假如须要对照现阶段 HEAD 和前两个递交,能采用
git diff HEAD HEAD~2为了能展示每个递交中的更详细的更新信息,能采用
git log –patch指示。假如只想要看包涵关键字“apple”的递交,采用
git log –grep apples –oneline指示。
须要查看历史递交记录中两个点之间的递交历史,他们能用
git log HEAD~5..HEAD^ –oneline指示,对于组成部分可以采用
git log branch_name..master –oneline 修复错误递交注意:以下很多指示会修改递交历史,采用前请确保了解后再执行。
当递交出错时,他们可能会期望能修改递交历史。我不建议修改早已推送到远程仓库的递交历史(即使 git 允许这样做),但对于本地仓库的递交历史,我个人认为还是能修改的。透过
git commit –amend指示能删掉前一次递交,并创建两个新的递交记录以替代之前的递交。
另两个我最喜欢的 git 采用技巧是交互式变基 (rebase)。它能用来编辑递交信息,或者将数个递交压缩成两个递交,这也是我最喜欢的两个机能。为了在远程仓库 origin 的 master 组成部分之后的所有递交上执行交互式变基,能采用
git rebase -i origin/master该指示会显示递交列表和可执行操作的详细描述。例如以下操作Sonbhadra把数个递交压缩成两个:
1 pick 80f2a48 Add feature X2 squash 2c74ea2 Add junit tests for feature X3 squash 4k81nm5 Bugfix for feature X最终的结果会是生成两个递交消息为“Add feature X”的递交。
假如须要恢复正常两个有问题的递交,他们能采用
git revert COMMIT_ID该指示会创建两个新的递交,让现阶段工程项目状态恢复正常到指定递交之前。
假如他们在修复问题时出现了误操作,例如不小心删掉了不应该删掉的文档。他们还是能从版本库中恢复正常回来,因为 git 保存了所有修改的版本,包括被移除的递交。git reflog 指示就是用来同时实现那个机能的。
挑拣递交(cherry-pick)假设他们和同事在各自单独的组成部分上展开合作开发,同事有两个重要的递交他们也想应用到他们的组成部分上来,但不须要对方组成部分的其它递交。这时我们能采用
git cherry-pick COMMIT_ID 写在最后以上都是我最喜欢的 git Sitapur。期望你也能从中学到很多新知识。这些都是我在日常生活采用中发现十分有用的指示,它们对我的日常生活组织工作十分有用。假如你也有类似常用的 git Sitapur或者常用指示,能分享出来大家一起交流。