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

7分钟用事例带你掌握工作常用的 git 命令

可能已经以这种那种方式使用了git:由于它的分布式性质,它是代码版本控制的事实标准,与集中式的Apache Subversion(SVN)相对。...重置分支 分支从 git 历史中的某一点开始 "生长(grow)",rebase 允许改变这个点。我们再创建一个分支,并在hello.txt添加一些改动。...echo "Changes" >> hello.txt && git stash 现在你可以使用以下命令来检查、应用放弃这些变化。...git reset --soft COMMIT # e.g. a07ee27 与之相反,你也可以进行重置,用git reset --hard COMMIT来删除所有修改。...存储这些信息的一种方法是git aliases。要配置一个别名,只需在配置中设置它。例如,我经常使用的一个别名是git tree,它以树的形式打印出一个漂亮的历史日志。

27610

如何使用 Git:参考指南

remote -v 添加 Git 上游,它可以是 URL,也可以托管在服务器(在后一种情况下,使用 连接 ssh): git remote add upstream https://www.github.com...a-branch..b-branch 查看参考日志 ( reflog) 以了解分支提示和其他参考在存储库中的最后更新时间: git reflog 通过其提交字符串哈希以更易读的格式显示 Git 中的任何对象...压缩改写提交后,您可以在项目上游代码的最新版本之上完成分支的变基。...请注意,某些存储库可能会使用 master而不是 main: git rebase upstream/main 恢复和重置可以使用 来恢复对给定提交所做的更改 revert。...,让它看起来像当前的上游主分支(也就是冲突太多),你可以执行重置: 注意 :执行此命令将使您的本地存储库看起来与上游完全一样。

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

45 个Git经典操作场景,专治不会合代码

把内容拉取到了错误的分支 这是另外一种使用 git reflog 情况,找到在这次错误拉(pull) 之前HEAD的指向。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支, 而是按下面的做: (main)$ git checkout my-branch (my-branch...检查是否分支的所有提交(commit)都合并(merge)过了 检查一个分支的所有提交(commit)是否都已经合并(merge)到了其它分支, 你应该在这些分支的head(任何 commits)...你可以尝试: 检查确保主(main)分支没有问题 rebase HEAD~2 或者更早 冲突的情况 如果你不能成功的完成rebase, 你可能必须要解决冲突。...已删除补丁(patch) 如果某人在 GitHub 给你发了一个pull request, 但是然后他删除了他自己的原始 fork, 你将没法克隆他们的提交(commit)使用 git am。

78120

45个 GIT 经典操作场景,专治不会合代码

把内容拉取到了错误的分支 这是另外一种使用 git reflog 情况,找到在这次错误拉(pull) 之前HEAD的指向。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支, 而是按下面的做: (main)$ git checkout my-branch (my-branch...检查是否分支的所有提交(commit)都合并(merge)过了 检查一个分支的所有提交(commit)是否都已经合并(merge)到了其它分支, 你应该在这些分支的head(任何 commits)...你可以尝试: 检查确保主(main)分支没有问题 rebase  HEAD~2 或者更早 冲突的情况 如果你不能成功的完成rebase, 你可能必须要解决冲突。...已删除补丁(patch) 如果某人在 GitHub 给你发了一个pull request, 但是然后他删除了他自己的原始 fork, 你将没法克隆他们的提交(commit)使用 git am。

1K10

经典45个git使用技巧与场合,专治不会合代码。

) ------------ 我从错误的分支拉取了内容,把内容拉取到了错误的分支 这是另外一种使用 git reflog 情况,找到在这次错误拉(pull) 之前HEAD的指向。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支, 而是按下面的做: (main)$ git checkout my-branch (my-branch...检查是否分支的所有提交(commit)都合并(merge)过了 检查一个分支的所有提交(commit)是否都已经合并(merge)到了其它分支, 你应该在这些分支的head(任何 commits)...你可以尝试: 检查确保主(main)分支没有问题 rebase HEAD~2 或者更早 冲突的情况 如果你不能成功的完成rebase, 你可能必须要解决冲突。...已删除补丁(patch) 如果某人在 GitHub 给你发了一个pull request, 但是然后他删除了他自己的原始 fork, 你将没法克隆他们的提交(commit)使用 git am。

1.2K20

45 个 Git 操作场景,专治不会合代码

我从错误的分支拉取了内容,把内容拉取到了错误的分支 这是另外一种使用 git reflog 情况,找到在这次错误拉(pull) 之前HEAD的指向。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支, 而是按下面的做: (main)$ git checkout my-branch (my-branch...检查是否分支的所有提交(commit)都合并(merge)过了 检查一个分支的所有提交(commit)是否都已经合并(merge)到了其它分支, 你应该在这些分支的head(任何 commits)...你可以尝试: 检查确保主(main)分支没有问题 rebase HEAD~2 或者更早 冲突的情况 如果你不能成功的完成rebase, 你可能必须要解决冲突。...已删除补丁(patch) 如果某人在 GitHub 给你发了一个pull request, 但是然后他删除了他自己的原始 fork, 你将没法克隆他们的提交(commit)使用 git am。

97110

45个 GIT 经典操作场景,专治不会合代码

把内容拉取到了错误的分支 这是另外一种使用 git reflog 情况,找到在这次错误拉(pull) 之前HEAD的指向。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支, 而是按下面的做: (main)$ git checkout my-branch (my-branch...检查是否分支的所有提交(commit)都合并(merge)过了 检查一个分支的所有提交(commit)是否都已经合并(merge)到了其它分支, 你应该在这些分支的head(任何 commits)...你可以尝试: 检查确保主(main)分支没有问题 rebase HEAD~2 或者更早 冲突的情况 如果你不能成功的完成rebase, 你可能必须要解决冲突。...已删除补丁(patch) 如果某人在 GitHub 给你发了一个pull request, 但是然后他删除了他自己的原始 fork, 你将没法克隆他们的提交(commit)使用 git am。

1.5K40

13 年的 Bug 调试经验总结

此外,如果你在if语句的分支中设置变量,那么或许你在另一个分支中也要设置。与此种情况相关的是标记被设置的情况。只添加用于设置的标记的条件不难,但是很容易忘了添加当标记应该再次重置时的条件。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一正常,那也没关系,但要是问题发生,你会很庆幸自己添加了这些日志。...至少,这意味着每一行新的改变了的代码行至少已经被执行过一次。此外,单元测试和功能测试都很不错,但还不够。新的功能也必须进行测试,并在类似于产品的环境中探索。只有这样,我才能说我完成了一个功能。...通常,揭露bug测试的一种测试方法是使用随机输入。例如,H.323协议的ASN.1解码使用二进制数据操作。通过发送随机字节去解码,我们发现了解码器中的几个bug。...更多的时间,事实往往证明,他们所报告的的确是实际发生的情况。因此,这些天,我开始接受他们所报告的内容的表明价值。当然,我依然会仔细检查是否被正确地设置等等。

71850

13 年的 Bug 调试经验总结

此外,如果你在if语句的分支中设置变量,那么或许你在另一个分支中也要设置。与此种情况相关的是标记被设置的情况。只添加用于设置的标记的条件不难,但是很容易忘了添加当标记应该再次重置时的条件。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一正常,那也没关系,但要是问题发生,你会很庆幸自己添加了这些日志。...至少,这意味着每一行新的改变了的代码行至少已经被执行过一次。此外,单元测试和功能测试都很不错,但还不够。新的功能也必须进行测试,并在类似于产品的环境中探索。只有这样,我才能说我完成了一个功能。...通常,揭露bug测试的一种测试方法是使用随机输入。例如,H.323协议的ASN.1解码使用二进制数据操作。通过发送随机字节去解码,我们发现了解码器中的几个bug。...更多的时间,事实往往证明,他们所报告的的确是实际发生的情况。因此,这些天,我开始接受他们所报告的内容的表明价值。当然,我依然会仔细检查是否被正确地设置等等。

94890

13 年的 Bug 调试经验总结

此外,如果你在if语句的分支中设置变量,那么或许你在另一个分支中也要设置。与此种情况相关的是标记被设置的情况。只添加用于设置的标记的条件不难,但是很容易忘了添加当标记应该再次重置时的条件。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一正常,那也没关系,但要是问题发生,你会很庆幸自己添加了这些日志。...至少,这意味着每一行新的改变了的代码行至少已经被执行过一次。此外,单元测试和功能测试都很不错,但还不够。新的功能也必须进行测试,并在类似于产品的环境中探索。只有这样,我才能说我完成了一个功能。...通常,揭露bug测试的一种测试方法是使用随机输入。例如,H.323协议的ASN.1解码使用二进制数据操作。通过发送随机字节去解码,我们发现了解码器中的几个bug。...更多的时间,事实往往证明,他们所报告的的确是实际发生的情况。因此,这些天,我开始接受他们所报告的内容的表明价值。当然,我依然会仔细检查是否被正确地设置等等。

69560

13 年的 Bug 调试经验总结

此外,如果你在if语句的分支中设置变量,那么或许你在另一个分支中也要设置。与此种情况相关的是标记被设置的情况。只添加用于设置的标记的条件不难,但是很容易忘了添加当标记应该再次重置时的条件。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一正常,那也没关系,但要是问题发生,你会很庆幸自己添加了这些日志。...至少,这意味着每一行新的改变了的代码行至少已经被执行过一次。此外,单元测试和功能测试都很不错,但还不够。新的功能也必须进行测试,并在类似于产品的环境中探索。只有这样,我才能说我完成了一个功能。...通常,揭露bug测试的一种测试方法是使用随机输入。例如,H.323协议的ASN.1解码使用二进制数据操作。通过发送随机字节去解码,我们发现了解码器中的几个bug。...更多的时间,事实往往证明,他们所报告的的确是实际发生的情况。因此,这些天,我开始接受他们所报告的内容的表明价值。当然,我依然会仔细检查是否被正确地设置等等。

70060

13 年的 Bug 调试经验总结

此外,如果你在if语句的分支中设置变量,那么或许你在另一个分支中也要设置。与此种情况相关的是标记被设置的情况。只添加用于设置的标记的条件不难,但是很容易忘了添加当标记应该再次重置时的条件。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一正常,那也没关系,但要是问题发生,你会很庆幸自己添加了这些日志。...至少,这意味着每一行新的改变了的代码行至少已经被执行过一次。此外,单元测试和功能测试都很不错,但还不够。新的功能也必须进行测试,并在类似于产品的环境中探索。只有这样,我才能说我完成了一个功能。...通常,揭露bug测试的一种测试方法是使用随机输入。例如,H.323协议的ASN.1解码使用二进制数据操作。通过发送随机字节去解码,我们发现了解码器中的几个bug。...更多的时间,事实往往证明,他们所报告的的确是实际发生的情况。因此,这些天,我开始接受他们所报告的内容的表明价值。当然,我依然会仔细检查是否被正确地设置等等。

50120

Git 从入门到精通,这篇包教包会!

什么是版本控制 版本控制是一种记录一个若干文件内容变化,以便将来查阅特定版本修订情况的系统。 什么是分布式版本控制系统 介绍分布式版本控制系统前,必要先了解一下传统的集中式版本控制系统。...,把内容拉取到了错误的分支 这是另外一种使用 git reflog 情况,找到在这次错误拉(pull) 之前 HEAD 的指向。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支, 而是按下面的做: (master)$ git checkout my-branch (my-branch...检查是否分支的所有提交(commit)都合并(merge)过了 检查一个分支的所有提交(commit)是否都已经合并(merge)到了其它分支, 你应该在这些分支的 head(任何 commits...你可以尝试: 检查确保主(master)分支没有问题 rebase HEAD~2 或者更早 冲突的情况 如果你不能成功的完成 rebase, 你可能必须要解决冲突。

2.5K20

开发工具Tools·Git 从入门到精通1

版本控制是一种记录一个若干文件内容变化,以便将来查阅特定版本修订情况的系统。 什么是分布式版本控制系统? 介绍分布式版本控制系统前,必要先了解一下传统的集中式版本控制系统。...,把内容拉取到了错误的分支 这是另外一种使用 git reflog 情况,找到在这次错误拉(pull) 之前 HEAD 的指向。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化(changes)反映到远程分支, 而是按下面的做: (master)$ git checkout my-branch (my-branch...检查是否分支的所有提交(commit)都合并(merge)过了 检查一个分支的所有提交(commit)是否都已经合并(merge)到了其它分支, 你应该在这些分支的 head(任何 commits...你可以尝试: 检查确保主(master)分支没有问题 rebase HEAD\~2 或者更早 冲突的情况 如果你不能成功的完成 rebase, 你可能必须要解决冲突。

1.2K30

Git 帮助手册

-b # 我从错误的分支拉取了内容,把内容拉取到了错误的分支 这是另外一种使用 git reflog 情况,找到在这次错误拉 (pull) 之前 HEAD 的指向。...使用时需要注意,一种安全使用 rebase 的方法是,不要把你的变化 (changes) 反映到远程分支,而是按下面的做: (master)$ git checkout my-branch (my-branch...# 检查是否分支的所有提交 (commit) 都合并 (merge) 过了 检查一个分支的所有提交 (commit) 是否都已经合并 (merge) 到了其它分支,你应该在这些分支的 head (任何...你可以尝试: 检查确保主 (master) 分支没有问题 rebase HEAD\~2 或者更早 # 冲突的情况 如果你不能成功的完成 rebase, 你可能必须要解决冲突。...那里,还有一个重置 (hard reset) 到一个较旧的提交。最新的动作出现在最上面以 HEAD@{0} 标识.

4.2K30

衣带渐宽终不悔!嵌入式大牛10年调Bug经验总结

此外,如果你在if语句的分支中设置变量,那么或许你在另一个分支中也要设置。与此种情况相关的是标记被设置的情况。只添加用于设置的标记的条件不难,但是很容易忘了添加当标记应该再次重置时的条件。...确保补充足够多的(但不要太多)日志记录,这样你就可以说明为什么程序要这么做。如果一正常,那也没关系,但要是问题发生,你会很庆幸自己添加了这些日志。...更多的时间,事实往往证明,他们所报告的的确是实际发生的情况。因此,这些天,我开始接受他们所报告的内容的表明价值。当然,我依然会仔细检查是否被正确地设置等等。...遵循这些步骤可以确保它确实是一个bug,并且此次修复的确可以解决这个问题。简单而有必要。...7、在一种语言编程,但别为其束缚了思想。“代码大全”中说:“深入一门语言编程,不要浮于表面”。

43311

可能每天都会用到的Git命令速查表

要摆脱自一次提交以来所做的所有更改,只需运行: git checkout -- . 要仅清除特定文件目录中的更改,请。可以替换为您希望从中删除更改的文件和/目录的列表。...然后运行以下命令,替换URL: git remote add upstream 你可以通过运行git remote -v来检查是否有效。...) 记录合并冲突解决方案 为了避免多次解决相同的确切合并冲突,可以启用合并冲突解决方案的Git缓存。...如果你实际希望这些提交在现有分支而不是在新分支上进行,则可以执行以下操作: git checkout && git merge <branch_with_commits...在每次提交时,都应检查是否正常。如果不是,请使用git bisect bad将提交标记为错误。如果是,则使用git bisect good将其标记为好。

1.2K30

看完这篇还不会用Git,那我就哭了!

可以逐步处理代码,在需要回滚到备份副本的过程中保存每一步的进度! 常见的问题是 Git 很难使用。有时版本和分支不同步,你会花很长时间试图推送代码!...更糟糕的是,不知道某些命令的确切工作方式很容易导致意外删除覆盖部分代码! 这就是我写本文的原因,从而学习到如何正确使用 Git,以便在开发中共同进行编码!...如果你想远程保存和备份项目,则需要在 GitHub 创建一个远程存储库(它是免费的!)。因此,首先转到 github.com 并创建一个存储库。...高级文件添加 还有一些更高级的方法可以将文件添加到 Git 中,从而使你的工作流程更高效。...我们可以执行以下操作,而不是试图查找所有更改的文件并逐个添加它们: # 逐个添加文件 git add filename # 添加当前目录中的所有文件 git add -A # 添加当前目录中的所有文件更改

69330

揭秘Git高手的10个秘密武器:让你的工作效率飙升!

-D选项是强制删除,无论该分支是否已经完全合并都会删除它。以下是命令。...安全删除(检查合并): git branch -d branchName 强制删除(不检查合并): git branch -D branchName 4、重命名一个Git分支 要重命名一个分支可以使用...你可以使用以下命令来撤销那个特定的提交: git revert commitHash 这是一种安全且非破坏性的方式来纠正你的项目中的错误不想要的修改。...在下面的截图中,高亮的部分代表你可以轻松复制的提交哈希值: 10、重置Git提交 假设你对项目进行了提交。然而,在检查后,你意识到需要调整完全撤销最后一次提交。...软重置: git reset --soft HEAD^ 当使用git reset --soft HEAD^时,执行一个软重置。这个命令允许回溯到最后一次提交,同时保留所有更改在暂存区中。

16010

小姐姐用动画图解Git命令,一看就懂!

使用软重置,我们可以撤销提交记录,但是保留新建的 style.css 和 index.js 文件。...Hard reset重置 重置时:无需保留提交已有的修改,直接将当前分支的状态恢复到某个特定提交下。...需要注意的是,重置还会将当前工作目录(working directory)中的文件、已暂存文件(staged files)全部移除!...如下图所示: 5、git cherry-pick 举个例子:dev 分支的 76d12 提交添加了 index.js 文件,我们需要将本次提交更改加入到 master 分支,那么就可以使用 git cherry-pick...如下图所示: 8、git reflog git reflog 用于显示所有已执行操作的日志!包括合并、重置、还原,也就是记录了对分支的一更改行为。

82031
领券