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

10 个迅速提升你 Git 水平提示

注:本文中,一些命令包含了方括号中部分内容(例如:git add -p [file_name]).在这些示例中,你插入必要数字、标示符等等,如果没有方括号。 1....是谁弄乱代码? 当事情出错时,先去指责别人是人类天性之一。如果你产品服务器挂了,使用git blame命令可以很容易找出罪魁祸首。...这个命令可以文件每一行作者、最新变更提交和提交时间展示出来。 git blame [file_name] ? 在下面的截图中你可以看到命令是如何在更大目录中搜寻。 ? 4....然后会要求你为新commit录入提交信息。这一过程本质重写了你commit历史。 ? 8. Stash未提交更改 你正在修改某个bug或者某个特性,又突然被要求展示你工作。...如果你在一个分支中解决它,你可以使用cherry-pick命令把它commit到其它分支上去,而不会弄乱其他文件commit。 让我们来设想一个用得着它场景。

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

8.2 自定义 Git - Git 属性

在本节,你学习到一些能在自己项目中用到属性,并看到几个实际例子。 二进制文件 你可以用 Git 属性让 Git 知道哪些是二进制文件(以防它没有识别出来),并指示其如何处理这些文件。...我们会对 Git 进行配置,令其能够借助docx2txt 程序 Word 文档转为可读文本文件,这样不同文件间就能够正确比较。...如果在一个或多个文件设置该属性,下次当你检出相关分支时候,Git 会用相应数据对象 SHA-1 值替换上述字段。...export-subst 在导出文件进行部署时候,你可以 git log 格式化和关键字展开处理应用于被 export-subst属性标记部分文件。...假设你有一个数据库设置文件database.xml,在两个分支中它是不同,而你想合并另一个分支到你分支,又不想弄乱该数据库文件

70430

如何在5分钟内做出你第一个开源贡献

这个操作会将代码仓库复制到你账户名下。 Clone(克隆)代码仓库 接下来,复制后代码仓库克隆到你电脑。...对代码进行修改,然后Commit(提交)修改 打开 Contributors.md 这个文件,更新文件内容,将你名字加上去,保存修改。git status 这命令会列出被改动文件。...git commit -m "Add to Contributors list" 替换为你名字 改动 Push(发布)到 GitHub 使用 git push 命令发布代码...这是当你感到你已经本地存储库弄乱并希望重新设置本地存储库时需要做事情。 如果你想撤销/重置本地提交,请执行以下步骤。...这个文档提供关于如何提交转移到另一个分支信息。

1.5K80

合并冲突 - 每天三分钟玩转Git(三)

就连Git自己也不知道应该保存哪一份文件,在此时就需要一个超级英雄出现拯救世界,他享有最高决定权,而那个人就是你。...一般rebase或pull冲突时候,都会出现提示,然后git status会出现上图图示 这个时候不可以进行任何分支切换和commit操作,按照他提示进行处理 git status提示哪个文件是都被修改...,both modified,然后使用编辑器修改该文件,解决冲突 解决完成后,git add 添加该冲突文件 git rebase --continue,并更新commit message,完成整个rebase...现在两个分支同一个文件内容不一样,现在我们在dev/pzqu分支上进行合并: ? 上图出现一个冲突,是我们意料之中,修改share_file.txt文件,解决此冲突: ?...通常我们开一个新开发分支是为了在自己分支写代码,方便提交也不会把主线弄乱。 现在我们用同样方法dev/pzqu合并到master分支,然后把两个分支都提交到远程。 ?

57110

保姆教程:构建与发布Python包

Git 现在我们已经创建了项目结构,下面初始化一个 GitHub 存储库来托管代码: git init git add * git commit -m "First commit" git branch...例如,我们可以轻松地设置一个pre-commit hook,以确保文件不会在行尾存在额外空白,或者可以black设置为预提交挂钩,以确保所有代码始终正确格式化。...现在是时候更改提交到仓库,这些更改来自添加新依赖项,然后是运行预提交挂钩更改: git add pyproject.toml poetry.lock .pre-commit-config.yaml...测试 现在我尝试空包上传到 test PyPI存储库 。这让每个人都可以测试他们打包或发布工作流程,而不会弄乱真实存储库。 6.1....为此,您需要在TestPyPI创建一个账号,然后在您账号设置下创建一个新 API密钥。

1.1K30

仅用CPU就能跑到1000FPS,这是开源C++跨平台人脸检测项目

作者预训练 CNN 模型转换为静态变量后储存到了 C 文件里,使得该项目不需要任何其他依赖项(当然 OpenCV 还是需要),仅仅只需要一个 C++编译器,就能在任何一个平台甚至嵌入式系统编译并运行该项目...尤其吸引人是该项目使用 C++编写且支持 AVX2,在 i7 CPU 就能跑出丧心病狂 1000FPS!下图为项目作者给出检测效果示例。 ?...OpenCV 压缩包解压到当前目录下: tar xvzf 3.4.0.tar.gz 为了避免在编译时源码文件弄乱,我们新建一个名为 linuxidcbuild 文件夹,在其下进行 OpenCV 编译与安装...://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/ " 修改为我们刚存放 ippicv 目录。.../images/test.png 虽然看似操作非常复杂,但实际主要就是编译 OpenCV,其它模块都可以直接在项目中完成编译。最后,就可以愉快地使用这个极速人脸检测模型

74210

文件生命周期看GIT提交流程

本章说内容是上面这张图前面部分,如下: image.png 只有提交本地仓库流程,并没有涉及到远程仓库。...,如下: image.png 上面的图以文件状态角度出发,指出了一个文件从创建到提交文件仓库再到脱离仓库追踪整个过程可能经历各种状态。...似乎没有说明怎么追踪文件,继续看,如需要被追踪 use "git add" to track, 意为使用git add追踪文件。 已更新 为了下面的内容更方便讲解,先来说说文件已更新状态。...由之前操作,现在已经有各种状态文件: 未追踪文件:README.md 编辑更新文件:modify.go 冲突更新文件:conflict.go 删除更新文件:delete.go 下面如何使用git...更新直接提交 git commit -am "message" 可以编辑更新直接从工作区提交仓库,即跨过暂存区。不支持删除与冲突更新和新文件提交。

69420

版本控制工具——Git常用操作(

w=574&h=258&f=png&s=47887] 创建git托管项目 假如我们创建一个项目叫make_money,先创建一个文件夹叫make_money,再使用git init命令创建git项目。...创建成功以后,会出现一个叫.git隐藏文件夹,这个就是你git仓库,以后所有的git操作历史提交记录信息就全部记录在此,只要这个文件夹在就可以记住我们全部git操作 工作区和暂存区 在使用git...一旦你把文件改乱,或者误删了文件,还可以从最近一个commit恢复,然后继续工作,而不是把几个月工作成果全部丢失。...通常我们开一个新开发分支是为了在自己分支写代码,方便提交也不会把主线弄乱,现在我们用同样方法dev/pzqu合并到master分支,然后把两个分支都提交到远程。...(撤消commit,回滚,回退远程仓库等) 哎呀,提交时候漏了文件 tag操作 git忽略不想提交文件 注意事项 理论git日常用到命令是 diff show fetch rebase pull

97760

Git 代码回滚与找回艺术

[exam-1-2.png] (3)小黄小蓝进行常规 git pull,遇到了一大堆冲突,并且 commit 历史都乱!...本地仓库(.git) 在工作区中有个隐藏目录.git,这就是 Git 本地仓库数据库。工作区中项目文件实际就是从这里签出(checkout)而得到,修改后内容最终提交后记录到本地仓库中。...[git-working-area.png] 一个基本 Git 工作流程如下: 在工作区中修改文件 暂存文件文件存放在暂存区 改动从暂存区提交到本地仓库 从本地仓库推送到远端仓库 常见代码回滚场景...利用 "git reset" 可达到这个目的,不过,Git 还提供更简便方法来修改最近一次 commit。...然而需要注意,并非真正所有记录"git reflog"都能够恢复,有些情况仍然无能为力: 非本地操作记录 "git reflog"能管理是本地工作区操作记录,非本地(如其他人或在其他机器记录它就无从知晓

1.5K20

Git 和 GitHub:从入门到实践3 Git 分支简介、Git 和 GitHub 日常操作

Git 仓库目录(.git directory):Git 仓库目录就是真正存储和管理代码库目录。提交修改到代码库本质就是暂存区修改提交(commit)到代码库中。...处在 Git 仓库目录中修改就是已提交状态。 总结下来,一次完整提交包含以下操作: 修改文件修改文件保存到暂存区(git add/rm/mv)。...暂存区文件提交(git commit)到代码库中。 当然如果需要将本地代码库修改同步到远程代码库中(例如 GitHub),还需要将本地修改 push 到远程。 为什么要有暂存区?...Git 通过 HEAD 知道当前工作分支指向哪条 commit 。...暂存区修改提交到本地仓库:使用 git commit 命令暂存区中修改提交到本地代码库中。 使用 git push 命令提交本地 commit 到远端。

67230

源码管理工具之git使用

image.png 查看文件之前版本 除了切换分支之外,git checkout还可以HEAD指针移动到当前分支其他commit记录。...你可以在新快照中像其他文件一样重新提交旧版本。所以,在效果git checkout这个用法可以用来单个文件回滚到旧版本。 ? image.png ?...image.png 一旦你在重设之后又增加了新提交,git会认为你本地历史已经和 origin/master分叉,同步你仓库时合并提交(merge commit)会使你同事困惑。...5、git clean git clean命令未记录文件从你工作目录中移除。它只是提供一条捷径,因为用git status查看未记录文件,然后手动移除它们也很方便。...git只需要将当前分支顶端(快速向前地)移动到目标分支顶端,即可整合两个分支历史,而不需要“真正”合并分支。它在效果合并历史,因为目标分支提交现在在当前分支可以访问到。

93720

如何当前Git最新版本回退到指定版本号,并为指定版本创建一个新分支同步到远程仓库

如何当前Git最新版本回退到指定版本号,并为指定版本创建一个新分支同步到远程仓库          我们在使用Git分布式管理工具时候,经常会涉及到如何本地最新代码切换到之前版本历史里指定版本(这里可能是代码出现...,这是我在实际开发中遇到过问题,所以在此记录一下整个操作过程,方便下次能直接使用,而不是去百度里翻来翻去,还有就是百度到东西不一定对,一定要结合自己问题进行取舍,不然后悔总是自己,记得有一次我直接把整个本地版本库都弄乱...先重新clone远程最新代码到另一个文件目录下(避免文件项目名冲突)。...新项目当前版本回退到历史版本节点(这里可以根据自己提交代码时描述进行选择回退,所以在开发中尽量把提交代码时描述写清楚,方便以后版本回退),这里回退版本编号:e29440fbf364ca29656e42769d342c34b279bbc9...在远程仓库创建新分支(分支名:e29440),并将当前本地分支(e29440)提交到远程分支,这个时候就能在远程仓库看到分支和分支对应项目

1.3K70

Git快速入门

这篇文章介绍git一些基本概念以及git常用一些命令。github官方提供一套git学习教程,感兴趣可以去看看。 分布式版本库 基本概念 首先,看看官网是怎么介绍git。...# 提交暂存区代码到版本库 git commit -m 'commit message' # 如果你重新编辑一些文件,添加到暂存区,想把这些修改合并到上一次提交 # 然后会出现一个编辑框,让你修改上次提交信息...在git中,一个分支就会存在有一个指针,该指针指向一个commit。每次拉分支就会在当前commit创建一个新指针,而且分支指针每次都会跟随commit前移。...先创建feature分支,手头代码提交到feature分支 git checkout -b feature git add . git commit -m 'feature branch commit...10.jpg 可以通过git status查看哪些文件出现冲突,通过编辑器所有冲突解决后就可以进行提交了。

1.8K40

git常用操作都在这里(二)

通过修改文件然后运行 git add 或 git rm 一个已追踪文件, 随后运行 git commit --amend 拿走当前暂存区域并使其做为新提交快照。...如果你在一个分支中解决它, 你可以使用cherry-pick命令把它commit到其它分支上去,而不会弄乱其他文件commit。 让我们来设想一个用得着它场景。...给指定commit打标签 打标签不必要在head之上,也可在之前版本打,这需要你知道某个提交对象校验和(通过git log获取)。...# v0.1.2标签提交到git服务器 $ git push origin –tags # 本地所有标签一次性提交到git服务器 注意:如果想看之前某个标签状态下文件,可以这样操作 1.git...tag 查看当前分支下标签 2.git checkout v0.21 此时会指向打v0.21标签时代码状态,(但现在处于一个空分支) 3. cat test.txt 查看某个文件

915100

一份值得收藏 Git 异常处理清单

不过,关联 Git 文件文件夹就不一样,有本地仓库和远程仓库双重保护,找到一个被删除文件也不过就分分钟,一个命令行事情吧。...5(2).png 文件变更记录与未提交之前文件变更记录是一致,只是撤销了 commit 操作。...本地提交了错误文件 本地完全错误,本不应提交内容提交到了仓库,需要进行撤销,可以使用 --hard 参数 语法:git reset --hard [/HEAD~n>] 命令...5(4).png 已追踪文件变更内容都消失,撤销了 commit 和 add 操作,同时撤销了本地已追踪内容修改;未追踪内容不会被改变。从上面的效果可以看到,文件修改都会被撤销。...(六)撤销本地分支合并 实际操作中,总会有很多干扰,导致我们合并并不该合并分支到目标分支。解决这种问题方式有两种,git reset 和 git revert。

70021

Git关键命令总结

,也可以使用git checkout -- readme.txt工作区文件撤回到最近版本状态 删除文件 git rm test.txt 类似于 git add ,这个操作也是修改放到暂存区,也需要...,执行这个命令之后,文件会被删除,然后修改放到暂存区,如果要撤销修改,则用上述git reset -> get checkout,原理跟撤销修改也是类似的。...详情 image.png image.png 个人理解:当出现冲突时,文件中会有相应标记,手动解决冲突实际就是重新编辑文件,此后操作与更新仓库是一样,都需要add->commit,所以此时merge...,每个人都有自己分支,时不时地往dev分支合并就可以。...# 自动合并,存在分叉 git rebase # 分叉整理为直线 标签管理 标签 # 创建标签 git tag v1.0 # 在最新提交commit git tag v0.9 f52c633

53220

常见Git命令汇总

通过git add工作区文件添加到暂存区。 暂存区(Stage | Index):数据暂时存放区域,通过git commit暂存区文件添加到本地版本库。...commit -a") git diff -------- 查看具体修改内容,比如在上一步中,我们通过git status发现README.md文件发现更改,这时我们可以通过git diff <file...git commit ---------- 暂存区中内容保存到本地工作区,如上一步我们已经README.md文件添加到了暂存区,接下来就将它保存到本地工作区: jere@JereMBP GitTest...比如:在上一步中我们远程mian分支拉取了下来,发现他是对README.md文件做了更改,而我们一开始时候已经在develop分支对README.md文件相同位置做了更改,这时候,如果我们尝试...这时,你可以通过git commit --amend来修改最近提交文本消息。 当然,你也可以通过刚刚介绍撤销本地提交做到,这边就不再次展示

52740

Git 一些事

1.png Workspace:工作区(clone或者原始内容) Index/Stage:暂存区(有增删改查后add到临时区) Repository:本地仓库(保存本地增删改查记录) Remote...3.png git merge 这时候,你可以用pull命令把develop分支修改拉下来并且和你修改合并;结果看起来就像一个新和并提交 4.png git rebase $ git...5.png 代码回滚之Reset、Revert、 Checkout 6.png Reset 一个分支末端指向另一个提交,可以用来移除当前分支一些提交。...# HEAD移到新分支,然后更新工作目录 $ git checkout develop ​ # HEAD移动到当前commit前两个commit,同时更新workspace $ git checkout...​ # 重置暂存区指定文件,与一次commit保持一致,但工作区不变 $ git reset file ​ # 重置暂存区与工作区,与一次commit保持一致 $ git reset --hard

11.5K20
领券