{"id":5710,"date":"2022-03-30T09:38:46","date_gmt":"2022-03-30T01:38:46","guid":{"rendered":"https:\/\/damogame.cn:15443\/wordpress\/?p=5710"},"modified":"2022-03-30T09:38:46","modified_gmt":"2022-03-30T01:38:46","slug":"%e5%88%9a%e8%bf%9b%e5%85%ac%e5%8f%b8%e9%a2%86%e5%af%bc%e8%a6%81%e4%bd%a0-git%e5%90%88%e4%b8%8b%e9%a1%b9%e7%9b%ae%e4%bb%a3%e7%a0%81%ef%bc%8c%e7%ab%9f%e7%84%b6%e9%83%bd%e4%b8%8d%e4%bc%9a","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/5710","title":{"rendered":"\u521a\u8fdb\u516c\u53f8\u9886\u5bfc\u8981\u4f60 Git\u5408\u4e0b\u9879\u76ee\u4ee3\u7801\uff0c\u7adf\u7136\u90fd\u4e0d\u4f1a"},"content":{"rendered":"<div id=\"page-content\" class=\"rich_media_area_primary\">\n<div class=\"rich_media_area_primary_inner\">\n<div id=\"img-content\" class=\"rich_media_wrp\">\n<div id=\"js_content\" class=\"rich_media_content \">\n<section><a href=\"https:\/\/mp.weixin.qq.com\/s\/gBEzA5LBv0c62NjIsnhQjg\">\u539f\u6587\u5730\u5740<\/a><\/section>\n<section><\/section>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\"><em>\u6587\u7ae0\u8f6c\u8f7d\u4e8e\uff1a\u6c5f\u5357\u4e00\u70b9\u96e8\u00a0\u00a0<\/em><\/h3>\n<p>Git\u662f\u7a0b\u5e8f\u5458\u5fc5\u987b\u638c\u63e1\u7684\u5de5\u5177\uff0c\u65e5\u5e38\u64cd\u4f5c\u9879\u76ee\u4ee3\u7801\u7684\u5de5\u5177<\/p>\n<section data-tool=\"mdnice\u7f16\u8f91\u5668\" data-website=\"https:\/\/www.mdnice.com\">\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\"><strong>git<\/strong>\u00a0\u5bf9\u4e8e\u5927\u5bb6\u5e94\u8be5\u90fd\u4e0d\u592a\u964c\u751f\uff0c\u719f\u7ec3\u4f7f\u7528git\u5df2\u7ecf\u6210\u4e3a\u7a0b\u5e8f\u5458\u7684\u4e00\u9879\u57fa\u672c\u6280\u80fd\uff0c\u5c3d\u7ba1\u5728\u5de5\u4f5c\u4e2d\u6709\u8bf8\u5982\u00a0<code>Sourcetree<\/code>\u8fd9\u6837\u725bX\u7684\u5ba2\u6237\u7aef\u5de5\u5177\uff0c\u4f7f\u5f97\u5408\u5e76\u4ee3\u7801\u53d8\u7684\u5f88\u65b9\u4fbf\u3002\u4f46\u627e\u5de5\u4f5c\u9762\u8bd5\u548c\u4e00\u4e9b\u9700\u5f70\u663e\u4e2a\u4eba\u5b9e\u529b\u7684\u573a\u666f\uff0c\u4ecd\u7136\u9700\u8981\u6211\u4eec\u638c\u63e1\u8db3\u591f\u591a\u7684git\u547d\u4ee4\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4e0b\u8fb9\u6211\u4eec\u6574\u7406\u4e8645\u4e2a\u65e5\u5e38\u7528git\u5408\u4ee3\u7801\u7684\u7ecf\u5178\u64cd\u4f5c\u573a\u666f\uff0c\u57fa\u672c\u8986\u76d6\u4e86\u5de5\u4f5c\u4e2d\u7684\u9700\u6c42\u3002<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u521a\u624d\u63d0\u4ea4\u4e86\u4ec0\u4e48?<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u7528\u00a0<code>git commit -a<\/code>\u00a0\u63d0\u4ea4\u4e86\u4e00\u6b21\u53d8\u5316(changes)\uff0c\u800c\u4f60\u53c8\u4e0d\u786e\u5b9a\u5230\u5e95\u8fd9\u6b21\u63d0\u4ea4\u4e86\u54ea\u4e9b\u5185\u5bb9\u3002\u4f60\u5c31\u53ef\u4ee5\u7528\u4e0b\u9762\u7684\u547d\u4ee4\u663e\u793a\u5f53\u524d<code>HEAD<\/code>\u4e0a\u7684\u6700\u8fd1\u4e00\u6b21\u7684\u63d0\u4ea4(commit):<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0show\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6216\u8005<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0log\u00a0-n1\u00a0-p\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u7684\u63d0\u4ea4\u4fe1\u606f(commit message)\u5199\u9519\u4e86<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u7684\u63d0\u4ea4\u4fe1\u606f(<code>commit message<\/code>)\u5199\u9519\u4e86\u4e14\u8fd9\u6b21\u63d0\u4ea4(commit)\u8fd8\u6ca1\u6709\u63a8(push), \u4f60\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u6cd5\u6765\u4fee\u6539\u63d0\u4ea4\u4fe1\u606f(<code>commit message<\/code>):<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0commit\u00a0--amend\u00a0--only\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u4f1a\u6253\u5f00\u4f60\u7684\u9ed8\u8ba4\u7f16\u8f91\u5668, \u5728\u8fd9\u91cc\u4f60\u53ef\u4ee5\u7f16\u8f91\u4fe1\u606f. \u53e6\u4e00\u65b9\u9762, \u4f60\u4e5f\u53ef\u4ee5\u7528\u4e00\u6761\u547d\u4ee4\u4e00\u6b21\u5b8c\u6210:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0commit\u00a0--amend\u00a0--only\u00a0-m\u00a0'xxxxxxx'\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u5df2\u7ecf\u63a8(push)\u4e86\u8fd9\u6b21\u63d0\u4ea4(commit), \u4f60\u53ef\u4ee5\u4fee\u6539\u8fd9\u6b21\u63d0\u4ea4(commit)\u7136\u540e\u5f3a\u63a8(<code>force push<\/code>), \u4f46\u662f\u4e0d\u63a8\u8350\u8fd9\u4e48\u505a\u3002<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u63d0\u4ea4(commit)\u91cc\u7684\u7528\u6237\u540d\u548c\u90ae\u7bb1\u4e0d\u5bf9<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u8fd9\u53ea\u662f\u5355\u4e2a\u63d0\u4ea4(commit)\uff0c\u4fee\u6539\u5b83\uff1a<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0commit\u00a0--amend\u00a0--author\u00a0\"New\u00a0Authorname\u00a0&lt;authoremail@mydomain.com&gt;\"\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u9700\u8981\u4fee\u6539\u6240\u6709\u5386\u53f2, \u53c2\u8003 &#8216;git filter-branch&#8217;\u7684\u6307\u5357\u9875.<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u4ece\u4e00\u4e2a\u63d0\u4ea4(commit)\u91cc\u79fb\u9664\u4e00\u4e2a\u6587\u4ef6<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u6cd5\uff0c\u4ece\u4e00\u4e2a\u63d0\u4ea4(commit)\u91cc\u79fb\u9664\u4e00\u4e2a\u6587\u4ef6:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0checkout\u00a0HEAD^\u00a0myfile\u00a0\u00a0\r\n$\u00a0git\u00a0add\u00a0-A\u00a0\u00a0\r\n$\u00a0git\u00a0commit\u00a0--amend\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u5c06\u975e\u5e38\u6709\u7528\uff0c\u5f53\u4f60\u6709\u4e00\u4e2a\u5f00\u653e\u7684\u8865\u4e01(<code>open patch<\/code>)\uff0c\u4f60\u5f80\u4e0a\u9762\u63d0\u4ea4\u4e86\u4e00\u4e2a\u4e0d\u5fc5\u8981\u7684\u6587\u4ef6\uff0c\u4f60\u9700\u8981\u5f3a\u63a8(<code>force push<\/code>)\u53bb\u66f4\u65b0\u8fd9\u4e2a\u8fdc\u7a0b\u8865\u4e01\u3002<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u5220\u9664\u6211\u7684\u7684\u6700\u540e\u4e00\u6b21\u63d0\u4ea4(commit)<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u9700\u8981\u5220\u9664\u63a8\u4e86\u7684\u63d0\u4ea4(<code>pushed commits<\/code>)\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u7684\u65b9\u6cd5\u3002\u53ef\u662f\uff0c\u8fd9\u4f1a\u4e0d\u53ef\u9006\u7684\u6539\u53d8\u4f60\u7684\u5386\u53f2\uff0c\u4e5f\u4f1a\u641e\u4e71\u90a3\u4e9b\u5df2\u7ecf\u4ece\u8be5\u4ed3\u5e93\u62c9\u53d6(pulled)\u4e86\u7684\u4eba\u7684\u5386\u53f2\u3002\u7b80\u800c\u8a00\u4e4b\uff0c\u5982\u679c\u4f60\u4e0d\u662f\u5f88\u786e\u5b9a\uff0c\u5343\u4e07\u4e0d\u8981\u8fd9\u4e48\u505a\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0reset\u00a0HEAD^\u00a0--hard\u00a0\u00a0\r\n$\u00a0git\u00a0push\u00a0-f\u00a0[remote]\u00a0[branch]\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u8fd8\u6ca1\u6709\u63a8\u5230\u8fdc\u7a0b, \u628aGit\u91cd\u7f6e(reset)\u5230\u4f60\u6700\u540e\u4e00\u6b21\u63d0\u4ea4\u524d\u7684\u72b6\u6001\u5c31\u53ef\u4ee5\u4e86(\u540c\u65f6\u4fdd\u5b58\u6682\u5b58\u7684\u53d8\u5316):<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch*)$\u00a0git\u00a0reset\u00a0--soft\u00a0HEAD@{1}\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u53ea\u80fd\u5728\u6ca1\u6709\u63a8\u9001\u4e4b\u524d\u6709\u7528. \u5982\u679c\u4f60\u5df2\u7ecf\u63a8\u4e86, \u552f\u4e00\u5b89\u5168\u80fd\u505a\u7684\u662f\u00a0<code>git revert SHAofBadCommit<\/code>\uff0c \u90a3\u4f1a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u63d0\u4ea4(commit)\u7528\u4e8e\u64a4\u6d88\u524d\u4e00\u4e2a\u63d0\u4ea4\u7684\u6240\u6709\u53d8\u5316(changes)\uff1b\u6216\u8005, \u5982\u679c\u4f60\u63a8\u7684\u8fd9\u4e2a\u5206\u652f\u662frebase-safe\u7684 (\u4f8b\u5982\uff1a\u5176\u5b83\u5f00\u53d1\u8005\u4e0d\u4f1a\u4ece\u8fd9\u4e2a\u5206\u652f\u62c9), \u53ea\u9700\u8981\u4f7f\u7528\u00a0<code>git push -f<\/code>\u3002<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5220\u9664\u4efb\u610f\u63d0\u4ea4(commit)<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u540c\u6837\u7684\u8b66\u544a\uff1a\u4e0d\u5230\u4e07\u4e0d\u5f97\u5df2\u7684\u65f6\u5019\u4e0d\u8981\u8fd9\u4e48\u505a.<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0rebase\u00a0--onto\u00a0SHA1_OF_BAD_COMMIT^\u00a0SHA1_OF_BAD_COMMIT\u00a0\u00a0\r\n$\u00a0git\u00a0push\u00a0-f\u00a0[remote]\u00a0[branch]\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6216\u8005\u505a\u4e00\u4e2a \u4ea4\u4e92\u5f0frebase \u5220\u9664\u90a3\u4e9b\u4f60\u60f3\u8981\u5220\u9664\u7684\u63d0\u4ea4(commit)\u91cc\u6240\u5bf9\u5e94\u7684\u884c\u3002<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u5c1d\u8bd5\u63a8\u4e00\u4e2a\u4fee\u6b63\u540e\u7684\u63d0\u4ea4(amended commit)\u5230\u8fdc\u7a0b\uff0c\u4f46\u662f\u62a5\u9519\uff1a<\/h3>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>To\u00a0https:\/\/github.com\/yourusername\/repo.git\u00a0\u00a0\r\n!\u00a0[rejected]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mybranch\u00a0-&gt;\u00a0mybranch\u00a0(non-fast-forward)\u00a0\u00a0\r\nerror:\u00a0failed\u00a0to\u00a0push\u00a0some\u00a0refs\u00a0to\u00a0'https:\/\/github.com\/tanay1337\/webmaker.org.git'\u00a0\u00a0\r\nhint:\u00a0Updates\u00a0were\u00a0rejected\u00a0because\u00a0the\u00a0tip\u00a0of\u00a0your\u00a0current\u00a0branch\u00a0is\u00a0behind\u00a0\u00a0\r\nhint:\u00a0its\u00a0remote\u00a0counterpart.\u00a0Integrate\u00a0the\u00a0remote\u00a0changes\u00a0(e.g.\u00a0\u00a0\r\nhint:\u00a0'git\u00a0pull\u00a0...')\u00a0before\u00a0pushing\u00a0again.\u00a0\u00a0\r\nhint:\u00a0See\u00a0the\u00a0'Note\u00a0about\u00a0fast-forwards'\u00a0in\u00a0'git\u00a0push\u00a0--help'\u00a0for\u00a0details.\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6ce8\u610f, rebasing(\u89c1\u4e0b\u9762)\u548c\u4fee\u6b63(amending)\u4f1a\u7528\u4e00\u4e2a<strong>\u65b0\u7684\u63d0\u4ea4(commit)\u4ee3\u66ff\u65e7\u7684<\/strong>, \u6240\u4ee5\u5982\u679c\u4e4b\u524d\u4f60\u5df2\u7ecf\u5f80\u8fdc\u7a0b\u4ed3\u5e93\u4e0a\u63a8\u8fc7\u4e00\u6b21\u4fee\u6b63\u524d\u7684\u63d0\u4ea4(commit)\uff0c\u90a3\u4f60\u73b0\u5728\u5c31\u5fc5\u987b\u5f3a\u63a8(<code>force push<\/code>) (<code>-f<\/code>)\u3002\u6ce8\u610f \u2013\u00a0<em>\u603b\u662f<\/em>\u00a0\u786e\u4fdd\u4f60\u6307\u660e\u4e00\u4e2a\u5206\u652f!<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0push\u00a0origin\u00a0mybranch\u00a0-f\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4e00\u822c\u6765\u8bf4,\u00a0<strong>\u8981\u907f\u514d\u5f3a\u63a8<\/strong>. \u6700\u597d\u662f\u521b\u5efa\u548c\u63a8(push)\u4e00\u4e2a\u65b0\u7684\u63d0\u4ea4(commit)\uff0c\u800c\u4e0d\u662f\u5f3a\u63a8\u4e00\u4e2a\u4fee\u6b63\u540e\u7684\u63d0\u4ea4\u3002\u540e\u8005\u4f1a\u4f7f\u90a3\u4e9b\u4e0e\u8be5\u5206\u652f\u6216\u8be5\u5206\u652f\u7684\u5b50\u5206\u652f\u5de5\u4f5c\u7684\u5f00\u53d1\u8005\uff0c\u5728\u6e90\u5386\u53f2\u4e2d\u4ea7\u751f\u51b2\u7a81\u3002<a href=\"http:\/\/mp.weixin.qq.com\/s?__biz=Mzg2ODU0NTA2Mw==&amp;mid=2247488419&amp;idx=2&amp;sn=0b80c7f9f73fca89b91e257a269cfada&amp;chksm=ceabf4ebf9dc7dfdaa605a9bb92d31c9fc0a10a7a94351234181a89ba5800672c6e7da2ebfbe&amp;scene=21#wechat_redirect\" target=\"_blank\" rel=\"noopener\" data-itemshowtype=\"0\" data-linktype=\"2\">Java\u9879\u76ee\u5206\u4eab<\/a><\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u610f\u5916\u7684\u505a\u4e86\u4e00\u6b21\u786c\u91cd\u7f6e(hard reset)\uff0c\u6211\u60f3\u627e\u56de\u6211\u7684\u5185\u5bb9<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u610f\u5916\u7684\u505a\u4e86\u00a0<code>git reset --hard<\/code>, \u4f60\u901a\u5e38\u80fd\u627e\u56de\u4f60\u7684\u63d0\u4ea4(commit), \u56e0\u4e3aGit\u5bf9\u6bcf\u4ef6\u4e8b\u90fd\u4f1a\u6709\u65e5\u5fd7\uff0c\u4e14\u90fd\u4f1a\u4fdd\u5b58\u51e0\u5929\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0reflog\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f60\u5c06\u4f1a\u770b\u5230\u4e00\u4e2a\u4f60\u8fc7\u53bb\u63d0\u4ea4(commit)\u7684\u5217\u8868, \u548c\u4e00\u4e2a\u91cd\u7f6e\u7684\u63d0\u4ea4\u3002\u9009\u62e9\u4f60\u60f3\u8981\u56de\u5230\u7684\u63d0\u4ea4(commit)\u7684SHA\uff0c\u518d\u91cd\u7f6e\u4e00\u6b21:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0reset\u00a0--hard\u00a0SHA1234\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u6837\u5c31\u5b8c\u6210\u4e86\u3002<\/p>\n<h2 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6682\u5b58(Staging)<\/h2>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u9700\u8981\u628a\u6682\u5b58\u7684\u5185\u5bb9\u6dfb\u52a0\u5230\u4e0a\u4e00\u6b21\u7684\u63d0\u4ea4(commit)<\/h3>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch*)$\u00a0git\u00a0commit\u00a0--amend\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u8981\u6682\u5b58\u4e00\u4e2a\u65b0\u6587\u4ef6\u7684\u4e00\u90e8\u5206\uff0c\u800c\u4e0d\u662f\u8fd9\u4e2a\u6587\u4ef6\u7684\u5168\u90e8<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4e00\u822c\u6765\u8bf4, \u5982\u679c\u4f60\u60f3\u6682\u5b58\u4e00\u4e2a\u6587\u4ef6\u7684\u4e00\u90e8\u5206, \u4f60\u53ef\u8fd9\u6837\u505a:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0add\u00a0--patch\u00a0filename.x\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>-p<\/code>\u00a0\u7b80\u5199\u3002\u8fd9\u4f1a\u6253\u5f00\u4ea4\u4e92\u6a21\u5f0f\uff0c \u4f60\u5c06\u80fd\u591f\u7528\u00a0<code>s<\/code>\u00a0\u9009\u9879\u6765\u5206\u9694\u63d0\u4ea4(commit)\uff1b\u7136\u800c, \u5982\u679c\u8fd9\u4e2a\u6587\u4ef6\u662f\u65b0\u7684, \u4f1a\u6ca1\u6709\u8fd9\u4e2a\u9009\u62e9\uff0c \u6dfb\u52a0\u4e00\u4e2a\u65b0\u6587\u4ef6\u65f6, \u8fd9\u6837\u505a:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0add\u00a0-N\u00a0filename.x\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u7136\u540e, \u4f60\u9700\u8981\u7528\u00a0<code>e<\/code>\u00a0\u9009\u9879\u6765\u624b\u52a8\u9009\u62e9\u9700\u8981\u6dfb\u52a0\u7684\u884c\uff0c\u6267\u884c\u00a0<code>git diff --cached<\/code>\u00a0\u5c06\u4f1a\u663e\u793a\u54ea\u4e9b\u884c\u6682\u5b58\u4e86\u54ea\u4e9b\u884c\u53ea\u662f\u4fdd\u5b58\u5728\u672c\u5730\u4e86\u3002<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u628a\u5728\u4e00\u4e2a\u6587\u4ef6\u91cc\u7684\u53d8\u5316(changes)\u52a0\u5230\u4e24\u4e2a\u63d0\u4ea4(commit)\u91cc<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>git add<\/code>\u00a0\u4f1a\u628a\u6574\u4e2a\u6587\u4ef6\u52a0\u5165\u5230\u4e00\u4e2a\u63d0\u4ea4.\u00a0<code>git add -p<\/code>\u00a0\u5141\u8bb8\u4ea4\u4e92\u5f0f\u7684\u9009\u62e9\u4f60\u60f3\u8981\u63d0\u4ea4\u7684\u90e8\u5206.<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u628a\u6682\u5b58\u7684\u5185\u5bb9\u53d8\u6210\u672a\u6682\u5b58\uff0c\u628a\u672a\u6682\u5b58\u7684\u5185\u5bb9\u6682\u5b58\u8d77\u6765<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u4f60\u5e94\u8be5\u5c06\u6240\u6709\u7684\u5185\u5bb9\u53d8\u4e3a\u672a\u6682\u5b58\uff0c\u7136\u540e\u518d\u9009\u62e9\u4f60\u60f3\u8981\u7684\u5185\u5bb9\u8fdb\u884ccommit\u3002\u4f46\u5047\u5b9a\u4f60\u5c31\u662f\u60f3\u8981\u8fd9\u4e48\u505a\uff0c\u8fd9\u91cc\u4f60\u53ef\u4ee5\u521b\u5efa\u4e00\u4e2a\u4e34\u65f6\u7684commit\u6765\u4fdd\u5b58\u4f60\u5df2\u6682\u5b58\u7684\u5185\u5bb9\uff0c\u7136\u540e\u6682\u5b58\u4f60\u7684\u672a\u6682\u5b58\u7684\u5185\u5bb9\u5e76\u8fdb\u884cstash\u3002\u7136\u540ereset\u6700\u540e\u4e00\u4e2acommit\u5c06\u539f\u672c\u6682\u5b58\u7684\u5185\u5bb9\u53d8\u4e3a\u672a\u6682\u5b58\uff0c\u6700\u540estash pop\u56de\u6765\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0commit\u00a0-m\u00a0\"WIP\"\u00a0\u00a0\r\n$\u00a0git\u00a0add\u00a0.\u00a0\u00a0\r\n$\u00a0git\u00a0stash\u00a0\u00a0\r\n$\u00a0git\u00a0reset\u00a0HEAD^\u00a0\u00a0\r\n$\u00a0git\u00a0stash\u00a0pop\u00a0--index\u00a00\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6ce8\u610f1: \u8fd9\u91cc\u4f7f\u7528<code>pop<\/code>\u4ec5\u4ec5\u662f\u56e0\u4e3a\u60f3\u5c3d\u53ef\u80fd\u4fdd\u6301\u5e42\u7b49\u3002\u6ce8\u610f2: \u5047\u5982\u4f60\u4e0d\u52a0\u4e0a<code>--index<\/code>\u4f60\u4f1a\u628a\u6682\u5b58\u7684\u6587\u4ef6\u6807\u8bb0\u4e3a\u4e3a\u5b58\u50a8\u3002<a href=\"http:\/\/mp.weixin.qq.com\/s?__biz=Mzg2ODU0NTA2Mw==&amp;mid=2247488419&amp;idx=2&amp;sn=0b80c7f9f73fca89b91e257a269cfada&amp;chksm=ceabf4ebf9dc7dfdaa605a9bb92d31c9fc0a10a7a94351234181a89ba5800672c6e7da2ebfbe&amp;scene=21#wechat_redirect\" target=\"_blank\" rel=\"noopener\" data-itemshowtype=\"0\" data-linktype=\"2\">Java\u9879\u76ee\u5206\u4eab<\/a><\/p>\n<h2 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u672a\u6682\u5b58(Unstaged)\u7684\u5185\u5bb9<\/h2>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u628a\u672a\u6682\u5b58\u7684\u5185\u5bb9\u79fb\u52a8\u5230\u4e00\u4e2a\u65b0\u5206\u652f<\/h3>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0checkout\u00a0-b\u00a0my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u628a\u672a\u6682\u5b58\u7684\u5185\u5bb9\u79fb\u52a8\u5230\u53e6\u4e00\u4e2a\u5df2\u5b58\u5728\u7684\u5206\u652f<\/h3>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0\u00a0\r\n$\u00a0git\u00a0checkout\u00a0my-branch\u00a0\u00a0\r\n$\u00a0git\u00a0stash\u00a0pop\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u4e22\u5f03\u672c\u5730\u672a\u63d0\u4ea4\u7684\u53d8\u5316(uncommitted changes)<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u53ea\u662f\u60f3\u91cd\u7f6e\u6e90(origin)\u548c\u4f60\u672c\u5730(local)\u4e4b\u95f4\u7684\u4e00\u4e9b\u63d0\u4ea4(commit)\uff0c\u4f60\u53ef\u4ee5\uff1a<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>#\u00a0one\u00a0commit\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0reset\u00a0--hard\u00a0HEAD^\u00a0\u00a0\r\n#\u00a0two\u00a0commits\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0reset\u00a0--hard\u00a0HEAD^^\u00a0\u00a0\r\n#\u00a0four\u00a0commits\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0reset\u00a0--hard\u00a0HEAD~4\u00a0\u00a0\r\n#\u00a0or\u00a0\u00a0\r\n(main)$\u00a0git\u00a0checkout\u00a0-f\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u91cd\u7f6e\u67d0\u4e2a\u7279\u6b8a\u7684\u6587\u4ef6, \u4f60\u53ef\u4ee5\u7528\u6587\u4ef6\u540d\u505a\u4e3a\u53c2\u6570:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0reset\u00a0filename\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u4e22\u5f03\u67d0\u4e9b\u672a\u6682\u5b58\u7684\u5185\u5bb9<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u60f3\u4e22\u5f03\u5de5\u4f5c\u62f7\u8d1d\u4e2d\u7684\u4e00\u90e8\u5206\u5185\u5bb9\uff0c\u800c\u4e0d\u662f\u5168\u90e8\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u7b7e\u51fa(checkout)\u4e0d\u9700\u8981\u7684\u5185\u5bb9\uff0c\u4fdd\u7559\u9700\u8981\u7684\u3002<a href=\"http:\/\/mp.weixin.qq.com\/s?__biz=Mzg2ODU0NTA2Mw==&amp;mid=2247488419&amp;idx=2&amp;sn=0b80c7f9f73fca89b91e257a269cfada&amp;chksm=ceabf4ebf9dc7dfdaa605a9bb92d31c9fc0a10a7a94351234181a89ba5800672c6e7da2ebfbe&amp;scene=21#wechat_redirect\" target=\"_blank\" rel=\"noopener\" data-itemshowtype=\"0\" data-linktype=\"2\">Java\u9879\u76ee\u5206\u4eab<\/a><\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0checkout\u00a0-p\u00a0\u00a0\r\n#\u00a0Answer\u00a0y\u00a0to\u00a0all\u00a0of\u00a0the\u00a0snippets\u00a0you\u00a0want\u00a0to\u00a0drop\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u53e6\u5916\u4e00\u4e2a\u65b9\u6cd5\u662f\u4f7f\u7528\u00a0<code>stash<\/code>\uff0c Stash\u6240\u6709\u8981\u4fdd\u7559\u4e0b\u7684\u5185\u5bb9, \u91cd\u7f6e\u5de5\u4f5c\u62f7\u8d1d, \u91cd\u65b0\u5e94\u7528\u4fdd\u7559\u7684\u90e8\u5206\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0-p\u00a0\u00a0\r\n#\u00a0Select\u00a0all\u00a0of\u00a0the\u00a0snippets\u00a0you\u00a0want\u00a0to\u00a0save\u00a0\u00a0\r\n$\u00a0git\u00a0reset\u00a0--hard\u00a0\u00a0\r\n$\u00a0git\u00a0stash\u00a0pop\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6216\u8005, stash \u4f60\u4e0d\u9700\u8981\u7684\u90e8\u5206, \u7136\u540estash drop\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0-p\u00a0\u00a0\r\n#\u00a0Select\u00a0all\u00a0of\u00a0the\u00a0snippets\u00a0you\u00a0don't\u00a0want\u00a0to\u00a0save\u00a0\u00a0\r\n$\u00a0git\u00a0stash\u00a0drop\u00a0\u00a0\r\n<\/code><\/pre>\n<h2 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5206\u652f(Branches)<\/h2>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u4ece\u9519\u8bef\u7684\u5206\u652f\u62c9\u53d6\u4e86\u5185\u5bb9\uff0c\u6216\u628a\u5185\u5bb9\u62c9\u53d6\u5230\u4e86\u9519\u8bef\u7684\u5206\u652f<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u662f\u53e6\u5916\u4e00\u79cd\u4f7f\u7528\u00a0<code>git reflog<\/code>\u00a0\u60c5\u51b5\uff0c\u627e\u5230\u5728\u8fd9\u6b21\u9519\u8bef\u62c9(pull) \u4e4b\u524dHEAD\u7684\u6307\u5411\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0reflog\u00a0\u00a0\r\nab7555f\u00a0HEAD@{0}:\u00a0pull\u00a0origin\u00a0wrong-branch:\u00a0Fast-forward\u00a0\u00a0\r\nc5bc55a\u00a0HEAD@{1}:\u00a0checkout:\u00a0checkout\u00a0message\u00a0goes\u00a0here\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u91cd\u7f6e\u5206\u652f\u5230\u4f60\u6240\u9700\u7684\u63d0\u4ea4(desired commit):<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0reset\u00a0--hard\u00a0c5bc55a\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5b8c\u6210\u3002<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u6254\u6389\u672c\u5730\u7684\u63d0\u4ea4(commit)\uff0c\u4ee5\u4fbf\u6211\u7684\u5206\u652f\u4e0e\u8fdc\u7a0b\u7684\u4fdd\u6301\u4e00\u81f4<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5148\u786e\u8ba4\u4f60\u6ca1\u6709\u63a8(push)\u4f60\u7684\u5185\u5bb9\u5230\u8fdc\u7a0b\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>git status<\/code>\u00a0\u4f1a\u663e\u793a\u4f60\u9886\u5148(ahead)\u6e90(origin)\u591a\u5c11\u4e2a\u63d0\u4ea4:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0status\u00a0\u00a0\r\n#\u00a0On\u00a0branch\u00a0my-branch\u00a0\u00a0\r\n#\u00a0Your\u00a0branch\u00a0is\u00a0ahead\u00a0of\u00a0'origin\/my-branch'\u00a0by\u00a02\u00a0commits.\u00a0\u00a0\r\n#\u00a0\u00a0\u00a0(use\u00a0\"git\u00a0push\"\u00a0to\u00a0publish\u00a0your\u00a0local\u00a0commits)\u00a0\u00a0\r\n#\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4e00\u79cd\u65b9\u6cd5\u662f:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0reset\u00a0--hard\u00a0origin\/my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u9700\u8981\u63d0\u4ea4\u5230\u4e00\u4e2a\u65b0\u5206\u652f\uff0c\u4f46\u9519\u8bef\u7684\u63d0\u4ea4\u5230\u4e86main<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5728main\u4e0b\u521b\u5efa\u4e00\u4e2a\u65b0\u5206\u652f\uff0c\u4e0d\u5207\u6362\u5230\u65b0\u5206\u652f,\u4ecd\u5728main\u4e0b:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0branch\u00a0my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u628amain\u5206\u652f\u91cd\u7f6e\u5230\u524d\u4e00\u4e2a\u63d0\u4ea4:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0reset\u00a0--hard\u00a0HEAD^\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>HEAD^<\/code>\u00a0\u662f\u00a0<code>HEAD^1<\/code>\u00a0\u7684\u7b80\u5199\uff0c\u4f60\u53ef\u4ee5\u901a\u8fc7\u6307\u5b9a\u8981\u8bbe\u7f6e\u7684<code>HEAD<\/code>\u6765\u8fdb\u4e00\u6b65\u91cd\u7f6e\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6216\u8005, \u5982\u679c\u4f60\u4e0d\u60f3\u4f7f\u7528\u00a0<code>HEAD^<\/code>, \u627e\u5230\u4f60\u60f3\u91cd\u7f6e\u5230\u7684\u63d0\u4ea4(commit)\u7684hash(<code>git log<\/code>\u00a0\u80fd\u591f\u5b8c\u6210)\uff0c \u7136\u540e\u91cd\u7f6e\u5230\u8fd9\u4e2ahash\u3002\u4f7f\u7528<code>git push<\/code>\u00a0\u540c\u6b65\u5185\u5bb9\u5230\u8fdc\u7a0b\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f8b\u5982, main\u5206\u652f\u60f3\u91cd\u7f6e\u5230\u7684\u63d0\u4ea4\u7684hash\u4e3a<code>a13b85e<\/code>:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0reset\u00a0--hard\u00a0a13b85e\u00a0\u00a0\r\nHEAD\u00a0is\u00a0now\u00a0at\u00a0a13b85e\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u7b7e\u51fa(checkout)\u521a\u624d\u65b0\u5efa\u7684\u5206\u652f\u7ee7\u7eed\u5de5\u4f5c:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0checkout\u00a0my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u4fdd\u7559\u6765\u81ea\u53e6\u5916\u4e00\u4e2aref-ish\u7684\u6574\u4e2a\u6587\u4ef6<a href=\"http:\/\/mp.weixin.qq.com\/s?__biz=Mzg2ODU0NTA2Mw==&amp;mid=2247488419&amp;idx=2&amp;sn=0b80c7f9f73fca89b91e257a269cfada&amp;chksm=ceabf4ebf9dc7dfdaa605a9bb92d31c9fc0a10a7a94351234181a89ba5800672c6e7da2ebfbe&amp;scene=21#wechat_redirect\" target=\"_blank\" rel=\"noopener\" data-itemshowtype=\"0\" data-linktype=\"2\">Java\u9879\u76ee\u5206\u4eab<\/a><\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5047\u8bbe\u4f60\u6b63\u5728\u505a\u4e00\u4e2a\u539f\u578b\u65b9\u6848(\u539f\u6587\u4e3aworking spike (see note)), \u6709\u6210\u767e\u7684\u5185\u5bb9\uff0c\u6bcf\u4e2a\u90fd\u5de5\u4f5c\u5f97\u5f88\u597d\u3002\u73b0\u5728, \u4f60\u63d0\u4ea4\u5230\u4e86\u4e00\u4e2a\u5206\u652f\uff0c\u4fdd\u5b58\u5de5\u4f5c\u5185\u5bb9:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(solution)$\u00a0git\u00a0add\u00a0-A\u00a0&amp;&amp;\u00a0git\u00a0commit\u00a0-m\u00a0\"Adding\u00a0all\u00a0changes\u00a0from\u00a0this\u00a0spike\u00a0into\u00a0one\u00a0big\u00a0commit.\"\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5f53\u4f60\u60f3\u8981\u628a\u5b83\u653e\u5230\u4e00\u4e2a\u5206\u652f\u91cc (\u53ef\u80fd\u662f<code>feature<\/code>, \u6216\u8005\u00a0<code>develop<\/code>), \u4f60\u5173\u5fc3\u662f\u4fdd\u6301\u6574\u4e2a\u6587\u4ef6\u7684\u5b8c\u6574\uff0c\u4f60\u60f3\u8981\u4e00\u4e2a\u5927\u7684\u63d0\u4ea4\u5206\u9694\u6210\u6bd4\u8f83\u5c0f\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5047\u8bbe\u4f60\u6709:<\/p>\n<ul class=\"list-paddingleft-1\" data-tool=\"mdnice\u7f16\u8f91\u5668\">\n<li>\n<section>\u5206\u652f\u00a0<code>solution<\/code>, \u62e5\u6709\u539f\u578b\u65b9\u6848\uff0c \u9886\u5148\u00a0<code>develop<\/code>\u00a0\u5206\u652f\u3002<\/p>\n<\/section>\n<\/li>\n<li>\n<section>\u5206\u652f\u00a0<code>develop<\/code>, \u5728\u8fd9\u91cc\u4f60\u5e94\u7528\u539f\u578b\u65b9\u6848\u7684\u4e00\u4e9b\u5185\u5bb9\u3002<\/p>\n<\/section>\n<\/li>\n<\/ul>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u53bb\u53ef\u4ee5\u901a\u8fc7\u628a\u5185\u5bb9\u62ff\u5230\u4f60\u7684\u5206\u652f\u91cc\uff0c\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(develop)$\u00a0git\u00a0checkout\u00a0solution\u00a0--\u00a0file1.txt\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u4f1a\u628a\u8fd9\u4e2a\u6587\u4ef6\u5185\u5bb9\u4ece\u5206\u652f\u00a0<code>solution<\/code>\u00a0\u62ff\u5230\u5206\u652f\u00a0<code>develop<\/code>\u00a0\u91cc\u6765:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>#\u00a0On\u00a0branch\u00a0develop\u00a0\u00a0\r\n#\u00a0Your\u00a0branch\u00a0is\u00a0up-to-date\u00a0with\u00a0'origin\/develop'.\u00a0\u00a0\r\n#\u00a0Changes\u00a0to\u00a0be\u00a0committed:\u00a0\u00a0\r\n#\u00a0\u00a0(use\u00a0\"git\u00a0reset\u00a0HEAD\u00a0&lt;file&gt;...\"\u00a0to\u00a0unstage)\u00a0\u00a0\r\n#\u00a0\u00a0\r\n#\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0modified:\u00a0\u00a0\u00a0file1.txt\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u7136\u540e, \u6b63\u5e38\u63d0\u4ea4\u3002<\/p>\n<blockquote data-tool=\"mdnice\u7f16\u8f91\u5668\"><p>Note: Spike solutions are made to analyze or solve the problem. These solutions are used for estimation and discarded once everyone gets clear visualization of the problem.<\/p><\/blockquote>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u628a\u51e0\u4e2a\u63d0\u4ea4(commit)\u63d0\u4ea4\u5230\u4e86\u540c\u4e00\u4e2a\u5206\u652f\uff0c\u800c\u8fd9\u4e9b\u63d0\u4ea4\u5e94\u8be5\u5206\u5e03\u5728\u4e0d\u540c\u7684\u5206\u652f\u91cc<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5047\u8bbe\u4f60\u6709\u4e00\u4e2a<code>main<\/code>\u5206\u652f\uff0c \u6267\u884c<code>git log<\/code>, \u4f60\u770b\u5230\u4f60\u505a\u8fc7\u4e24\u6b21\u63d0\u4ea4:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0log\u00a0\u00a0\r\n\u00a0\u00a0\r\ncommit\u00a0e3851e817c451cc36f2e6f3049db528415e3c114\u00a0\u00a0\r\nAuthor:\u00a0Alex\u00a0Lee\u00a0&lt;alexlee@example.com&gt;\u00a0\u00a0\r\nDate:\u00a0\u00a0\u00a0Tue\u00a0Jul\u00a022\u00a015:39:27\u00a02014\u00a0-0400\u00a0\u00a0\r\n\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0Bug\u00a0#21\u00a0-\u00a0Added\u00a0CSRF\u00a0protection\u00a0\u00a0\r\n\u00a0\u00a0\r\ncommit\u00a05ea51731d150f7ddc4a365437931cd8be3bf3131\u00a0\u00a0\r\nAuthor:\u00a0Alex\u00a0Lee\u00a0&lt;alexlee@example.com&gt;\u00a0\u00a0\r\nDate:\u00a0\u00a0\u00a0Tue\u00a0Jul\u00a022\u00a015:39:12\u00a02014\u00a0-0400\u00a0\u00a0\r\n\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0Bug\u00a0#14\u00a0-\u00a0Fixed\u00a0spacing\u00a0on\u00a0title\u00a0\u00a0\r\n\u00a0\u00a0\r\ncommit\u00a0a13b85e984171c6e2a1729bb061994525f626d14\u00a0\u00a0\r\nAuthor:\u00a0Aki\u00a0Rose\u00a0&lt;akirose@example.com&gt;\u00a0\u00a0\r\nDate:\u00a0\u00a0\u00a0Tue\u00a0Jul\u00a021\u00a001:12:48\u00a02014\u00a0-0400\u00a0\u00a0\r\n\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0First\u00a0commit\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8ba9\u6211\u4eec\u7528\u63d0\u4ea4hash(commit hash)\u6807\u8bb0bug (<code>e3851e8<\/code>\u00a0for #21,\u00a0<code>5ea5173<\/code>\u00a0for #14).<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u9996\u5148, \u6211\u4eec\u628a<code>main<\/code>\u5206\u652f\u91cd\u7f6e\u5230\u6b63\u786e\u7684\u63d0\u4ea4(<code>a13b85e<\/code>):<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0reset\u00a0--hard\u00a0a13b85e\u00a0\u00a0\r\nHEAD\u00a0is\u00a0now\u00a0at\u00a0a13b85e\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u73b0\u5728, \u6211\u4eec\u5bf9\u00a0<code>bug #21<\/code>\u00a0\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u5206\u652f:<a href=\"http:\/\/mp.weixin.qq.com\/s?__biz=Mzg2ODU0NTA2Mw==&amp;mid=2247488419&amp;idx=2&amp;sn=0b80c7f9f73fca89b91e257a269cfada&amp;chksm=ceabf4ebf9dc7dfdaa605a9bb92d31c9fc0a10a7a94351234181a89ba5800672c6e7da2ebfbe&amp;scene=21#wechat_redirect\" target=\"_blank\" rel=\"noopener\" data-itemshowtype=\"0\" data-linktype=\"2\">Java\u9879\u76ee\u5206\u4eab<\/a><\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0checkout\u00a0-b\u00a021\u00a0\u00a0\r\n(21)$\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u63a5\u7740, \u6211\u4eec\u7528<code>\u00a0_cherry-pick_\u00a0<\/code>\u628a\u5bf9<code>bug #21<\/code>\u7684\u63d0\u4ea4\u653e\u5165\u5f53\u524d\u5206\u652f\u3002\u8fd9\u610f\u5473\u7740\u6211\u4eec\u5c06\u5e94\u7528(apply)\u8fd9\u4e2a\u63d0\u4ea4(commit)\uff0c\u4ec5\u4ec5\u8fd9\u4e00\u4e2a\u63d0\u4ea4(commit)\uff0c\u76f4\u63a5\u5728HEAD\u4e0a\u9762\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(21)$\u00a0git\u00a0cherry-pick\u00a0e3851e8\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u65f6\u5019, \u8fd9\u91cc\u53ef\u80fd\u4f1a\u4ea7\u751f\u51b2\u7a81\uff0c \u53c2\u89c1\u4ea4\u4e92\u5f0f rebasing \u7ae0\u00a0<strong>\u51b2\u7a81\u8282<\/strong>\u00a0\u89e3\u51b3\u51b2\u7a81.<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u518d\u8005\uff0c \u6211\u4eec\u4e3abug #14 \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u5206\u652f, \u4e5f\u57fa\u4e8e<code>main<\/code>\u5206\u652f<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(21)$\u00a0git\u00a0checkout\u00a0main\u00a0\u00a0\r\n(main)$\u00a0git\u00a0checkout\u00a0-b\u00a014\u00a0\u00a0\r\n(14)$\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6700\u540e, \u4e3a bug #14 \u6267\u884c\u00a0<code>cherry-pick<\/code>:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(14)$\u00a0git\u00a0cherry-pick\u00a05ea5173\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u5220\u9664\u4e0a\u6e38(upstream)\u5206\u652f\u88ab\u5220\u9664\u4e86\u7684\u672c\u5730\u5206\u652f<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4e00\u65e6\u4f60\u5728github \u4e0a\u9762\u5408\u5e76(merge)\u4e86\u4e00\u4e2a<code>pull request<\/code>, \u4f60\u5c31\u53ef\u4ee5\u5220\u9664\u4f60fork\u91cc\u88ab\u5408\u5e76\u7684\u5206\u652f\u3002\u5982\u679c\u4f60\u4e0d\u51c6\u5907\u7ee7\u7eed\u5728\u8fd9\u4e2a\u5206\u652f\u91cc\u5de5\u4f5c, \u5220\u9664\u8fd9\u4e2a\u5206\u652f\u7684\u672c\u5730\u62f7\u8d1d\u4f1a\u66f4\u5e72\u51c0\uff0c\u4f7f\u4f60\u4e0d\u4f1a\u9677\u5165\u5de5\u4f5c\u5206\u652f\u548c\u4e00\u5806\u9648\u65e7\u5206\u652f\u7684\u6df7\u4e71\u4e4b\u4e2d\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0fetch\u00a0-p\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u4e0d\u5c0f\u5fc3\u5220\u9664\u4e86\u6211\u7684\u5206\u652f<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u5b9a\u671f\u63a8\u9001\u5230\u8fdc\u7a0b, \u591a\u6570\u60c5\u51b5\u4e0b\u5e94\u8be5\u662f\u5b89\u5168\u7684\uff0c\u4f46\u6709\u4e9b\u65f6\u5019\u8fd8\u662f\u53ef\u80fd\u5220\u9664\u4e86\u8fd8\u6ca1\u6709\u63a8\u5230\u8fdc\u7a0b\u7684\u5206\u652f\u3002\u8ba9\u6211\u4eec\u5148\u521b\u5efa\u4e00\u4e2a\u5206\u652f\u548c\u4e00\u4e2a\u65b0\u7684\u6587\u4ef6:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0checkout\u00a0-b\u00a0my-branch\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0branch\u00a0\u00a0\r\n(my-branch)$\u00a0touch\u00a0foo.txt\u00a0\u00a0\r\n(my-branch)$\u00a0ls\u00a0\u00a0\r\nREADME.md\u00a0foo.txt\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6dfb\u52a0\u6587\u4ef6\u5e76\u505a\u4e00\u6b21\u63d0\u4ea4<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0add\u00a0.\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0commit\u00a0-m\u00a0'foo.txt\u00a0added'\u00a0\u00a0\r\n(my-branch)$\u00a0foo.txt\u00a0added\u00a0\u00a0\r\n\u00a01\u00a0files\u00a0changed,\u00a01\u00a0insertions(+)\u00a0\u00a0\r\n\u00a0create\u00a0mode\u00a0100644\u00a0foo.txt\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0log\u00a0\u00a0\r\n\u00a0\u00a0\r\ncommit\u00a04e3cd85a670ced7cc17a2b5d8d3d809ac88d5012\u00a0\u00a0\r\nAuthor:\u00a0siemiatj\u00a0&lt;siemiatj@example.com&gt;\u00a0\u00a0\r\nDate:\u00a0\u00a0\u00a0Wed\u00a0Jul\u00a030\u00a000:34:10\u00a02014\u00a0+0200\u00a0\u00a0\r\n\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0foo.txt\u00a0added\u00a0\u00a0\r\n\u00a0\u00a0\r\ncommit\u00a069204cdf0acbab201619d95ad8295928e7f411d5\u00a0\u00a0\r\nAuthor:\u00a0Kate\u00a0Hudson\u00a0&lt;katehudson@example.com&gt;\u00a0\u00a0\r\nDate:\u00a0\u00a0\u00a0Tue\u00a0Jul\u00a029\u00a013:14:46\u00a02014\u00a0-0400\u00a0\u00a0\r\n\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0Fixes\u00a0#6:\u00a0Force\u00a0pushing\u00a0after\u00a0amending\u00a0commits\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u73b0\u5728\u6211\u4eec\u5207\u56de\u5230\u4e3b(main)\u5206\u652f\uff0c\u2018\u4e0d\u5c0f\u5fc3\u7684\u2019\u5220\u9664<code>my-branch<\/code>\u5206\u652f<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0checkout\u00a0main\u00a0\u00a0\r\nSwitched\u00a0to\u00a0branch\u00a0'main'\u00a0\u00a0\r\nYour\u00a0branch\u00a0is\u00a0up-to-date\u00a0with\u00a0'origin\/main'.\u00a0\u00a0\r\n(main)$\u00a0git\u00a0branch\u00a0-D\u00a0my-branch\u00a0\u00a0\r\nDeleted\u00a0branch\u00a0my-branch\u00a0(was\u00a04e3cd85).\u00a0\u00a0\r\n(main)$\u00a0echo\u00a0oh\u00a0noes,\u00a0deleted\u00a0my\u00a0branch!\u00a0\u00a0\r\noh\u00a0noes,\u00a0deleted\u00a0my\u00a0branch!\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5728\u8fd9\u65f6\u5019\u4f60\u5e94\u8be5\u60f3\u8d77\u4e86<code>reflog<\/code>, \u4e00\u4e2a\u5347\u7ea7\u7248\u7684\u65e5\u5fd7\uff0c\u5b83\u5b58\u50a8\u4e86\u4ed3\u5e93(repo)\u91cc\u9762\u6240\u6709\u52a8\u4f5c\u7684\u5386\u53f2\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0reflog\u00a0\u00a0\r\n69204cd\u00a0HEAD@{0}:\u00a0checkout:\u00a0moving\u00a0from\u00a0my-branch\u00a0to\u00a0main\u00a0\u00a0\r\n4e3cd85\u00a0HEAD@{1}:\u00a0commit:\u00a0foo.txt\u00a0added\u00a0\u00a0\r\n69204cd\u00a0HEAD@{2}:\u00a0checkout:\u00a0moving\u00a0from\u00a0main\u00a0to\u00a0my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6b63\u5982\u4f60\u6240\u89c1\uff0c\u6211\u4eec\u6709\u4e00\u4e2a\u6765\u81ea\u5220\u9664\u5206\u652f\u7684\u63d0\u4ea4hash(commit hash)\uff0c\u63a5\u4e0b\u6765\u770b\u770b\u662f\u5426\u80fd\u6062\u590d\u5220\u9664\u4e86\u7684\u5206\u652f\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0checkout\u00a0-b\u00a0my-branch-help\u00a0\u00a0\r\nSwitched\u00a0to\u00a0a\u00a0new\u00a0branch\u00a0'my-branch-help'\u00a0\u00a0\r\n(my-branch-help)$\u00a0git\u00a0reset\u00a0--hard\u00a04e3cd85\u00a0\u00a0\r\nHEAD\u00a0is\u00a0now\u00a0at\u00a04e3cd85\u00a0foo.txt\u00a0added\u00a0\u00a0\r\n(my-branch-help)$\u00a0ls\u00a0\u00a0\r\nREADME.md\u00a0foo.txt\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u770b! \u6211\u4eec\u628a\u5220\u9664\u7684\u6587\u4ef6\u627e\u56de\u6765\u4e86\u3002Git\u7684\u00a0<code>reflog<\/code>\u00a0\u5728rebasing\u51fa\u9519\u7684\u65f6\u5019\u4e5f\u662f\u540c\u6837\u6709\u7528\u7684\u3002<a href=\"http:\/\/mp.weixin.qq.com\/s?__biz=Mzg2ODU0NTA2Mw==&amp;mid=2247488419&amp;idx=2&amp;sn=0b80c7f9f73fca89b91e257a269cfada&amp;chksm=ceabf4ebf9dc7dfdaa605a9bb92d31c9fc0a10a7a94351234181a89ba5800672c6e7da2ebfbe&amp;scene=21#wechat_redirect\" target=\"_blank\" rel=\"noopener\" data-itemshowtype=\"0\" data-linktype=\"2\">Java\u9879\u76ee\u5206\u4eab<\/a><\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u5220\u9664\u4e00\u4e2a\u5206\u652f<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5220\u9664\u4e00\u4e2a\u8fdc\u7a0b\u5206\u652f:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0push\u00a0origin\u00a0--delete\u00a0my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f60\u4e5f\u53ef\u4ee5:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0push\u00a0origin\u00a0:my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5220\u9664\u4e00\u4e2a\u672c\u5730\u5206\u652f:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0branch\u00a0-D\u00a0my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u4ece\u522b\u4eba\u6b63\u5728\u5de5\u4f5c\u7684\u8fdc\u7a0b\u5206\u652f\u7b7e\u51fa(checkout)\u4e00\u4e2a\u5206\u652f<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u9996\u5148, \u4ece\u8fdc\u7a0b\u62c9\u53d6(fetch) \u6240\u6709\u5206\u652f:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0fetch\u00a0--all\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5047\u8bbe\u4f60\u60f3\u8981\u4ece\u8fdc\u7a0b\u7684<code>daves<\/code>\u5206\u652f\u7b7e\u51fa\u5230\u672c\u5730\u7684<code>daves<\/code><\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0checkout\u00a0--track\u00a0origin\/daves\u00a0\u00a0\r\nBranch\u00a0daves\u00a0set\u00a0up\u00a0to\u00a0track\u00a0remote\u00a0branch\u00a0daves\u00a0from\u00a0origin.\u00a0\u00a0\r\nSwitched\u00a0to\u00a0a\u00a0new\u00a0branch\u00a0'daves'\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">(<code>--track<\/code>\u00a0\u662f\u00a0<code>git checkout -b [branch] [remotename]\/[branch]<\/code>\u00a0\u7684\u7b80\u5199)<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u6837\u5c31\u5f97\u5230\u4e86\u4e00\u4e2a<code>daves<\/code>\u5206\u652f\u7684\u672c\u5730\u62f7\u8d1d, \u4efb\u4f55\u63a8\u8fc7(pushed)\u7684\u66f4\u65b0\uff0c\u8fdc\u7a0b\u90fd\u80fd\u770b\u5230.<\/p>\n<h2 data-tool=\"mdnice\u7f16\u8f91\u5668\">Rebasing \u548c\u5408\u5e76(Merging)<\/h2>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u64a4\u9500rebase\/merge<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f60\u53ef\u4ee5\u5408\u5e76(merge)\u6216rebase\u4e86\u4e00\u4e2a\u9519\u8bef\u7684\u5206\u652f, \u6216\u8005\u5b8c\u6210\u4e0d\u4e86\u4e00\u4e2a\u8fdb\u884c\u4e2d\u7684rebase\/merge\u3002Git \u5728\u8fdb\u884c\u5371\u9669\u64cd\u4f5c\u7684\u65f6\u5019\u4f1a\u628a\u539f\u59cb\u7684HEAD\u4fdd\u5b58\u5728\u4e00\u4e2a\u53ebORIG_HEAD\u7684\u53d8\u91cf\u91cc, \u6240\u4ee5\u8981\u628a\u5206\u652f\u6062\u590d\u5230rebase\/merge\u524d\u7684\u72b6\u6001\u662f\u5f88\u5bb9\u6613\u7684\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0reset\u00a0--hard\u00a0ORIG_HEAD\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u5df2\u7ecfrebase\u8fc7, \u4f46\u662f\u6211\u4e0d\u60f3\u5f3a\u63a8(force push)<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4e0d\u5e78\u7684\u662f\uff0c\u5982\u679c\u4f60\u60f3\u628a\u8fd9\u4e9b\u53d8\u5316(changes)\u53cd\u5e94\u5230\u8fdc\u7a0b\u5206\u652f\u4e0a\uff0c\u4f60\u5c31\u5fc5\u987b\u5f97\u5f3a\u63a8(<code>force push<\/code>)\u3002\u662f\u56e0\u4f60\u5feb\u8fdb(<code>Fast forward<\/code>)\u4e86\u63d0\u4ea4\uff0c\u6539\u53d8\u4e86Git\u5386\u53f2, \u8fdc\u7a0b\u5206\u652f\u4e0d\u4f1a\u63a5\u53d7\u53d8\u5316(changes)\uff0c\u9664\u975e\u5f3a\u63a8(force push)\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u5c31\u662f\u8bb8\u591a\u4eba\u4f7f\u7528 merge \u5de5\u4f5c\u6d41, \u800c\u4e0d\u662f rebasing \u5de5\u4f5c\u6d41\u7684\u4e3b\u8981\u539f\u56e0\u4e4b\u4e00\uff0c \u5f00\u53d1\u8005\u7684\u5f3a\u63a8(force push)\u4f1a\u4f7f\u5927\u7684\u56e2\u961f\u9677\u5165\u9ebb\u70e6\u3002\u4f7f\u7528\u65f6\u9700\u8981\u6ce8\u610f\uff0c\u4e00\u79cd\u5b89\u5168\u4f7f\u7528 rebase \u7684\u65b9\u6cd5\u662f\uff0c\u4e0d\u8981\u628a\u4f60\u7684\u53d8\u5316(changes)\u53cd\u6620\u5230\u8fdc\u7a0b\u5206\u652f\u4e0a, \u800c\u662f\u6309\u4e0b\u9762\u7684\u505a:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0checkout\u00a0my-branch\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0rebase\u00a0-i\u00a0main\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0checkout\u00a0main\u00a0\u00a0\r\n(main)$\u00a0git\u00a0merge\u00a0--ff-only\u00a0my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u9700\u8981\u7ec4\u5408(combine)\u51e0\u4e2a\u63d0\u4ea4(commit)<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5047\u8bbe\u4f60\u7684\u5de5\u4f5c\u5206\u652f\u5c06\u4f1a\u505a\u5bf9\u4e8e\u00a0<code>main<\/code>\u00a0\u7684pull-request\u3002\u4e00\u822c\u60c5\u51b5\u4e0b\u4f60\u4e0d\u5173\u5fc3\u63d0\u4ea4(commit)\u7684\u65f6\u95f4\u6233\uff0c\u53ea\u60f3\u7ec4\u5408\u00a0<strong>\u6240\u6709<\/strong>\u00a0\u63d0\u4ea4(commit) \u5230\u4e00\u4e2a\u5355\u72ec\u7684\u91cc\u9762, \u7136\u540e\u91cd\u7f6e(reset)\u91cd\u63d0\u4ea4(recommit)\u3002\u786e\u4fdd\u4e3b(main)\u5206\u652f\u662f\u6700\u65b0\u7684\u548c\u4f60\u7684\u53d8\u5316\u90fd\u5df2\u7ecf\u63d0\u4ea4\u4e86, \u7136\u540e:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0reset\u00a0--soft\u00a0main\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0commit\u00a0-am\u00a0\"New\u00a0awesome\u00a0feature\"\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u60f3\u8981\u66f4\u591a\u7684\u63a7\u5236, \u60f3\u8981\u4fdd\u7559\u65f6\u95f4\u6233, \u4f60\u9700\u8981\u505a\u4ea4\u4e92\u5f0frebase (interactive rebase):<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0rebase\u00a0-i\u00a0main\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u6ca1\u6709\u76f8\u5bf9\u7684\u5176\u5b83\u5206\u652f\uff0c \u4f60\u5c06\u4e0d\u5f97\u4e0d\u76f8\u5bf9\u81ea\u5df1\u7684<code>HEAD<\/code>\u00a0\u8fdb\u884c rebase\u3002\u4f8b\u5982\uff1a\u4f60\u60f3\u7ec4\u5408\u6700\u8fd1\u7684\u4e24\u6b21\u63d0\u4ea4(commit), \u4f60\u5c06\u76f8\u5bf9\u4e8e<code>HEAD~2<\/code>\u00a0\u8fdb\u884crebase\uff0c \u7ec4\u5408\u6700\u8fd13\u6b21\u63d0\u4ea4(commit), \u76f8\u5bf9\u4e8e<code>HEAD~3<\/code>, \u7b49\u7b49\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0rebase\u00a0-i\u00a0HEAD~2\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5728\u4f60\u6267\u884c\u4e86\u4ea4\u4e92\u5f0f rebase\u7684\u547d\u4ee4(interactive rebase command)\u540e, \u4f60\u5c06\u5728\u4f60\u7684\u7f16\u8f91\u5668\u91cc\u770b\u5230\u7c7b\u4f3c\u4e0b\u9762\u7684\u5185\u5bb9:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>pick\u00a0a9c8a1d\u00a0Some\u00a0refactoring\u00a0\u00a0\r\npick\u00a001b2fd8\u00a0New\u00a0awesome\u00a0feature\u00a0\u00a0\r\npick\u00a0b729ad5\u00a0fixup\u00a0\u00a0\r\npick\u00a0e3851e8\u00a0another\u00a0fix\u00a0\u00a0\r\n\u00a0\u00a0\r\n#\u00a0Rebase\u00a08074d12..b729ad5\u00a0onto\u00a08074d12\u00a0\u00a0\r\n#\u00a0\u00a0\r\n#\u00a0Commands:\u00a0\u00a0\r\n#\u00a0\u00a0p,\u00a0pick\u00a0=\u00a0use\u00a0commit\u00a0\u00a0\r\n#\u00a0\u00a0r,\u00a0reword\u00a0=\u00a0use\u00a0commit,\u00a0but\u00a0edit\u00a0the\u00a0commit\u00a0message\u00a0\u00a0\r\n#\u00a0\u00a0e,\u00a0edit\u00a0=\u00a0use\u00a0commit,\u00a0but\u00a0stop\u00a0for\u00a0amending\u00a0\u00a0\r\n#\u00a0\u00a0s,\u00a0squash\u00a0=\u00a0use\u00a0commit,\u00a0but\u00a0meld\u00a0into\u00a0previous\u00a0commit\u00a0\u00a0\r\n#\u00a0\u00a0f,\u00a0fixup\u00a0=\u00a0like\u00a0\"squash\",\u00a0but\u00a0discard\u00a0this\u00a0commit's\u00a0log\u00a0message\u00a0\u00a0\r\n#\u00a0\u00a0x,\u00a0exec\u00a0=\u00a0run\u00a0command\u00a0(the\u00a0rest\u00a0of\u00a0the\u00a0line)\u00a0using\u00a0shell\u00a0\u00a0\r\n#\u00a0\u00a0\r\n#\u00a0These\u00a0lines\u00a0can\u00a0be\u00a0re-ordered;\u00a0they\u00a0are\u00a0executed\u00a0from\u00a0top\u00a0to\u00a0bottom.\u00a0\u00a0\r\n#\u00a0\u00a0\r\n#\u00a0If\u00a0you\u00a0remove\u00a0a\u00a0line\u00a0here\u00a0THAT\u00a0COMMIT\u00a0WILL\u00a0BE\u00a0LOST.\u00a0\u00a0\r\n#\u00a0\u00a0\r\n#\u00a0However,\u00a0if\u00a0you\u00a0remove\u00a0everything,\u00a0the\u00a0rebase\u00a0will\u00a0be\u00a0aborted.\u00a0\u00a0\r\n#\u00a0\u00a0\r\n#\u00a0Note\u00a0that\u00a0empty\u00a0commits\u00a0are\u00a0commented\u00a0out\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6240\u6709\u4ee5\u00a0<code>#<\/code>\u00a0\u5f00\u5934\u7684\u884c\u90fd\u662f\u6ce8\u91ca, \u4e0d\u4f1a\u5f71\u54cd rebase.<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u7136\u540e\uff0c\u4f60\u53ef\u4ee5\u7528\u4efb\u4f55\u4e0a\u9762\u547d\u4ee4\u5217\u8868\u7684\u547d\u4ee4\u66ff\u6362\u00a0<code>pick<\/code>, \u4f60\u4e5f\u53ef\u4ee5\u901a\u8fc7\u5220\u9664\u5bf9\u5e94\u7684\u884c\u6765\u5220\u9664\u4e00\u4e2a\u63d0\u4ea4(commit)\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f8b\u5982, \u5982\u679c\u4f60\u60f3\u00a0<strong>\u5355\u72ec\u4fdd\u7559\u6700\u65e7(first)\u7684\u63d0\u4ea4(commit),\u7ec4\u5408\u6240\u6709\u5269\u4e0b\u7684\u5230\u7b2c\u4e8c\u4e2a\u91cc\u9762<\/strong>, \u4f60\u5c31\u5e94\u8be5\u7f16\u8f91\u7b2c\u4e8c\u4e2a\u63d0\u4ea4(commit)\u540e\u9762\u7684\u6bcf\u4e2a\u63d0\u4ea4(commit) \u524d\u7684\u5355\u8bcd\u4e3a\u00a0<code>f<\/code>:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>pick\u00a0a9c8a1d\u00a0Some\u00a0refactoring\u00a0\u00a0\r\npick\u00a001b2fd8\u00a0New\u00a0awesome\u00a0feature\u00a0\u00a0\r\nf\u00a0b729ad5\u00a0fixup\u00a0\u00a0\r\nf\u00a0e3851e8\u00a0another\u00a0fix\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u60f3\u7ec4\u5408\u8fd9\u4e9b\u63d0\u4ea4(commit)\u00a0<strong>\u5e76\u91cd\u547d\u540d\u8fd9\u4e2a\u63d0\u4ea4(commit)<\/strong>, \u4f60\u5e94\u8be5\u5728\u7b2c\u4e8c\u4e2a\u63d0\u4ea4(commit)\u65c1\u8fb9\u6dfb\u52a0\u4e00\u4e2a<code>r<\/code>\uff0c\u6216\u8005\u66f4\u7b80\u5355\u7684\u7528<code>s<\/code>\u00a0\u66ff\u4ee3\u00a0<code>f<\/code>:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>pick\u00a0a9c8a1d\u00a0Some\u00a0refactoring\u00a0\u00a0\r\npick\u00a001b2fd8\u00a0New\u00a0awesome\u00a0feature\u00a0\u00a0\r\ns\u00a0b729ad5\u00a0fixup\u00a0\u00a0\r\ns\u00a0e3851e8\u00a0another\u00a0fix\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f60\u53ef\u4ee5\u5728\u63a5\u4e0b\u6765\u5f39\u51fa\u7684\u6587\u672c\u63d0\u793a\u6846\u91cc\u91cd\u547d\u540d\u63d0\u4ea4(commit)\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>Newer,\u00a0awesomer\u00a0features\u00a0\u00a0\r\n\u00a0\u00a0\r\n#\u00a0Please\u00a0enter\u00a0the\u00a0commit\u00a0message\u00a0for\u00a0your\u00a0changes.\u00a0Lines\u00a0starting\u00a0\u00a0\r\n#\u00a0with\u00a0'#'\u00a0will\u00a0be\u00a0ignored,\u00a0and\u00a0an\u00a0empty\u00a0message\u00a0aborts\u00a0the\u00a0commit.\u00a0\u00a0\r\n#\u00a0rebase\u00a0in\u00a0progress;\u00a0onto\u00a08074d12\u00a0\u00a0\r\n#\u00a0You\u00a0are\u00a0currently\u00a0editing\u00a0a\u00a0commit\u00a0while\u00a0rebasing\u00a0branch\u00a0'main'\u00a0on\u00a0'8074d12'.\u00a0\u00a0\r\n#\u00a0\u00a0\r\n#\u00a0Changes\u00a0to\u00a0be\u00a0committed:\u00a0\u00a0\r\n#\u00a0modified:\u00a0\u00a0\u00a0README.md\u00a0\u00a0\r\n#\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u6210\u529f\u4e86, \u4f60\u5e94\u8be5\u770b\u5230\u7c7b\u4f3c\u4e0b\u9762\u7684\u5185\u5bb9:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0Successfully\u00a0rebased\u00a0and\u00a0updated\u00a0refs\/heads\/main.\u00a0\u00a0\r\n<\/code><\/pre>\n<h4 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5b89\u5168\u5408\u5e76(merging)\u7b56\u7565<\/h4>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>--no-commit<\/code>\u00a0\u6267\u884c\u5408\u5e76(merge)\u4f46\u4e0d\u81ea\u52a8\u63d0\u4ea4, \u7ed9\u7528\u6237\u5728\u505a\u63d0\u4ea4\u524d\u68c0\u67e5\u548c\u4fee\u6539\u7684\u673a\u4f1a\u3002<code>no-ff<\/code>\u00a0\u4f1a\u4e3a\u7279\u6027\u5206\u652f(feature branch)\u7684\u5b58\u5728\u8fc7\u7559\u4e0b\u8bc1\u636e, \u4fdd\u6301\u9879\u76ee\u5386\u53f2\u4e00\u81f4\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0merge\u00a0--no-ff\u00a0--no-commit\u00a0my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<h4 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u9700\u8981\u5c06\u4e00\u4e2a\u5206\u652f\u5408\u5e76\u6210\u4e00\u4e2a\u63d0\u4ea4(commit)<\/h4>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0merge\u00a0--squash\u00a0my-branch\u00a0\u00a0\r\n<\/code><\/pre>\n<h4 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u53ea\u60f3\u7ec4\u5408(combine)\u672a\u63a8\u7684\u63d0\u4ea4(unpushed commit)<\/h4>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6709\u65f6\u5019\uff0c\u5728\u5c06\u6570\u636e\u63a8\u5411\u4e0a\u6e38\u4e4b\u524d\uff0c\u4f60\u6709\u51e0\u4e2a\u6b63\u5728\u8fdb\u884c\u7684\u5de5\u4f5c\u63d0\u4ea4(commit)\u3002\u8fd9\u65f6\u5019\u4e0d\u5e0c\u671b\u628a\u5df2\u7ecf\u63a8(push)\u8fc7\u7684\u7ec4\u5408\u8fdb\u6765\uff0c\u56e0\u4e3a\u5176\u4ed6\u4eba\u53ef\u80fd\u5df2\u7ecf\u6709\u63d0\u4ea4(commit)\u5f15\u7528\u5b83\u4eec\u4e86\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0rebase\u00a0-i\u00a0@{u}\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u4f1a\u4ea7\u751f\u4e00\u6b21\u4ea4\u4e92\u5f0f\u7684rebase(interactive rebase), \u53ea\u4f1a\u5217\u51fa\u6ca1\u6709\u63a8(push)\u7684\u63d0\u4ea4(commit)\uff0c \u5728\u8fd9\u4e2a\u5217\u8868\u65f6\u8fdb\u884creorder\/fix\/squash \u90fd\u662f\u5b89\u5168\u7684\u3002<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u68c0\u67e5\u662f\u5426\u5206\u652f\u4e0a\u7684\u6240\u6709\u63d0\u4ea4(commit)\u90fd\u5408\u5e76(merge)\u8fc7\u4e86<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u68c0\u67e5\u4e00\u4e2a\u5206\u652f\u4e0a\u7684\u6240\u6709\u63d0\u4ea4(commit)\u662f\u5426\u90fd\u5df2\u7ecf\u5408\u5e76(merge)\u5230\u4e86\u5176\u5b83\u5206\u652f, \u4f60\u5e94\u8be5\u5728\u8fd9\u4e9b\u5206\u652f\u7684head(\u6216\u4efb\u4f55 commits)\u4e4b\u95f4\u505a\u4e00\u6b21diff:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0log\u00a0--graph\u00a0--left-right\u00a0--cherry-pick\u00a0--oneline\u00a0HEAD...feature\/120-on-scroll\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u4f1a\u544a\u8bc9\u4f60\u5728\u4e00\u4e2a\u5206\u652f\u91cc\u6709\u800c\u53e6\u4e00\u4e2a\u5206\u652f\u6ca1\u6709\u7684\u6240\u6709\u63d0\u4ea4(commit), \u548c\u5206\u652f\u4e4b\u95f4\u4e0d\u5171\u4eab\u7684\u63d0\u4ea4(commit)\u7684\u5217\u8868\u3002\u53e6\u4e00\u4e2a\u505a\u6cd5\u53ef\u4ee5\u662f:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0log\u00a0main\u00a0^feature\/120-on-scroll\u00a0--no-merges\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4ea4\u4e92\u5f0frebase(interactive rebase)\u53ef\u80fd\u51fa\u73b0\u7684\u95ee\u9898<\/h3>\n<h4 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u4e2arebase \u7f16\u8f91\u5c4f\u5e55\u51fa\u73b0&#8217;noop&#8217;<\/h4>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u770b\u5230\u7684\u662f\u8fd9\u6837:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>noop\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u610f\u5473\u7740\u4f60rebase\u7684\u5206\u652f\u548c\u5f53\u524d\u5206\u652f\u5728\u540c\u4e00\u4e2a\u63d0\u4ea4(commit)\u4e0a, \u6216\u8005\u00a0<em>\u9886\u5148(ahead)<\/em>\u00a0\u5f53\u524d\u5206\u652f\u3002\u4f60\u53ef\u4ee5\u5c1d\u8bd5:<\/p>\n<ul class=\"list-paddingleft-1\" data-tool=\"mdnice\u7f16\u8f91\u5668\">\n<li>\n<section>\u68c0\u67e5\u786e\u4fdd\u4e3b(main)\u5206\u652f\u6ca1\u6709\u95ee\u9898<\/p>\n<\/section>\n<\/li>\n<li>\n<section>rebase \u00a0<code>HEAD~2<\/code>\u00a0\u6216\u8005\u66f4\u65e9<\/p>\n<\/section>\n<\/li>\n<\/ul>\n<h4 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6709\u51b2\u7a81\u7684\u60c5\u51b5<\/h4>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u4e0d\u80fd\u6210\u529f\u7684\u5b8c\u6210rebase, \u4f60\u53ef\u80fd\u5fc5\u987b\u8981\u89e3\u51b3\u51b2\u7a81\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u9996\u5148\u6267\u884c\u00a0<code>git status<\/code>\u00a0\u627e\u51fa\u54ea\u4e9b\u6587\u4ef6\u6709\u51b2\u7a81:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0status\u00a0\u00a0\r\nOn\u00a0branch\u00a0my-branch\u00a0\u00a0\r\nChanges\u00a0not\u00a0staged\u00a0for\u00a0commit:\u00a0\u00a0\r\n\u00a0\u00a0(use\u00a0\"git\u00a0add\u00a0&lt;file&gt;...\"\u00a0to\u00a0update\u00a0what\u00a0will\u00a0be\u00a0committed)\u00a0\u00a0\r\n\u00a0\u00a0(use\u00a0\"git\u00a0checkout\u00a0--\u00a0&lt;file&gt;...\"\u00a0to\u00a0discard\u00a0changes\u00a0in\u00a0working\u00a0directory)\u00a0\u00a0\r\n\u00a0\u00a0\r\n\u00a0modified:\u00a0\u00a0\u00a0README.md\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5728\u8fd9\u4e2a\u4f8b\u5b50\u91cc\u9762,\u00a0<code>README.md<\/code>\u00a0\u6709\u51b2\u7a81\u3002\u6253\u5f00\u8fd9\u4e2a\u6587\u4ef6\u627e\u5230\u7c7b\u4f3c\u4e0b\u9762\u7684\u5185\u5bb9:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>\u00a0&lt;&lt;&lt;&lt;&lt;&lt;&lt;\u00a0HEAD\u00a0\u00a0\r\n\u00a0\u00a0\u00a0some\u00a0code\u00a0\u00a0\r\n\u00a0\u00a0\u00a0=========\u00a0\u00a0\r\n\u00a0\u00a0\u00a0some\u00a0code\u00a0\u00a0\r\n\u00a0\u00a0\u00a0&gt;&gt;&gt;&gt;&gt;&gt;&gt;\u00a0new-commit\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f60\u9700\u8981\u89e3\u51b3\u65b0\u63d0\u4ea4\u7684\u4ee3\u7801(\u793a\u4f8b\u91cc, \u4ece\u4e2d\u95f4<code>==<\/code>\u7ebf\u5230<code>new-commit<\/code>\u7684\u5730\u65b9)\u4e0e<code>HEAD<\/code>\u00a0\u4e4b\u95f4\u4e0d\u4e00\u6837\u7684\u5730\u65b9.<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6709\u65f6\u5019\u8fd9\u4e9b\u5408\u5e76\u975e\u5e38\u590d\u6742\uff0c\u4f60\u5e94\u8be5\u4f7f\u7528\u53ef\u89c6\u5316\u7684\u5dee\u5f02\u7f16\u8f91\u5668(visual diff editor):<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main*)$\u00a0git\u00a0mergetool\u00a0-t\u00a0opendiff\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5728\u4f60\u89e3\u51b3\u5b8c\u6240\u6709\u51b2\u7a81\u548c\u6d4b\u8bd5\u8fc7\u540e,\u00a0<code>git add<\/code>\u00a0\u53d8\u5316\u4e86\u7684(changed)\u6587\u4ef6, \u7136\u540e\u7528<code>git rebase --continue<\/code>\u00a0\u7ee7\u7eedrebase\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0add\u00a0README.md\u00a0\u00a0\r\n(my-branch)$\u00a0git\u00a0rebase\u00a0--continue\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u5728\u89e3\u51b3\u5b8c\u6240\u6709\u7684\u51b2\u7a81\u8fc7\u540e\uff0c\u5f97\u5230\u4e86\u4e0e\u63d0\u4ea4\u524d\u4e00\u6837\u7684\u7ed3\u679c, \u53ef\u4ee5\u6267\u884c<code>git rebase --skip<\/code>\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4efb\u4f55\u65f6\u5019\u4f60\u60f3\u7ed3\u675f\u6574\u4e2arebase \u8fc7\u7a0b\uff0c\u56de\u6765rebase\u524d\u7684\u5206\u652f\u72b6\u6001, \u4f60\u53ef\u4ee5\u505a:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(my-branch)$\u00a0git\u00a0rebase\u00a0--abort\u00a0\u00a0\r\n<\/code><\/pre>\n<h2 data-tool=\"mdnice\u7f16\u8f91\u5668\">Stash<\/h2>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6682\u5b58\u6240\u6709\u6539\u52a8<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6682\u5b58\u4f60\u5de5\u4f5c\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6539\u52a8<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f60\u53ef\u4ee5\u4f7f\u7528<code>-u<\/code>\u6765\u6392\u9664\u4e00\u4e9b\u6587\u4ef6<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0-u\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6682\u5b58\u6307\u5b9a\u6587\u4ef6<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5047\u8bbe\u4f60\u53ea\u60f3\u6682\u5b58\u67d0\u4e00\u4e2a\u6587\u4ef6<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0push\u00a0working-directory-path\/filename.ext\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5047\u8bbe\u4f60\u60f3\u6682\u5b58\u591a\u4e2a\u6587\u4ef6<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0push\u00a0working-directory-path\/filename1.ext\u00a0working-directory-path\/filename2.ext\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6682\u5b58\u65f6\u8bb0\u5f55\u6d88\u606f<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u6837\u4f60\u53ef\u4ee5\u5728<code>list<\/code>\u65f6\u770b\u5230\u5b83<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0save\u00a0&lt;message&gt;\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6216<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0push\u00a0-m\u00a0&lt;message&gt;\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f7f\u7528\u67d0\u4e2a\u6307\u5b9a\u6682\u5b58<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u9996\u5148\u4f60\u53ef\u4ee5\u67e5\u770b\u4f60\u7684<code>stash<\/code>\u8bb0\u5f55<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0list\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u7136\u540e\u4f60\u53ef\u4ee5<code>apply<\/code>\u67d0\u4e2a<code>stash<\/code><\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0apply\u00a0\"stash@{n}\"\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6b64\u5904\uff0c &#8216;n&#8217;\u662f<code>stash<\/code>\u5728\u6808\u4e2d\u7684\u4f4d\u7f6e\uff0c\u6700\u4e0a\u5c42\u7684<code>stash<\/code>\u4f1a\u662f0<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u9664\u6b64\u4e4b\u5916\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u65f6\u95f4\u6807\u8bb0(\u5047\u5982\u4f60\u80fd\u8bb0\u5f97\u7684\u8bdd)\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0apply\u00a0\"stash@{2.hours.ago}\"\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6682\u5b58\u65f6\u4fdd\u7559\u672a\u6682\u5b58\u7684\u5185\u5bb9<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f60\u9700\u8981\u624b\u52a8create\u4e00\u4e2a<code>stash commit<\/code>\uff0c \u7136\u540e\u4f7f\u7528<code>git stash store<\/code>\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0stash\u00a0create\u00a0\u00a0\r\n$\u00a0git\u00a0stash\u00a0store\u00a0-m\u00a0\"commit-message\"\u00a0CREATED_SHA1\u00a0\u00a0\r\n<\/code><\/pre>\n<h2 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6742\u9879(Miscellaneous Objects)<\/h2>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u514b\u9686\u6240\u6709\u5b50\u6a21\u5757<\/h3>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0clone\u00a0--recursive\u00a0git:\/\/github.com\/foo\/bar.git\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u5df2\u7ecf\u514b\u9686\u4e86:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0submodule\u00a0update\u00a0--init\u00a0--recursive\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5220\u9664\u6807\u7b7e(tag)<\/h3>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0tag\u00a0-d\u00a0&lt;tag_name&gt;\u00a0\u00a0\r\n$\u00a0git\u00a0push\u00a0&lt;remote&gt;\u00a0:refs\/tags\/&lt;tag_name&gt;\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6062\u590d\u5df2\u5220\u9664\u6807\u7b7e(tag)<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4f60\u60f3\u6062\u590d\u4e00\u4e2a\u5df2\u5220\u9664\u6807\u7b7e(tag), \u53ef\u4ee5\u6309\u7167\u4e0b\u9762\u7684\u6b65\u9aa4: \u9996\u5148, \u9700\u8981\u627e\u5230\u65e0\u6cd5\u8bbf\u95ee\u7684\u6807\u7b7e(unreachable tag):<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0fsck\u00a0--unreachable\u00a0|\u00a0grep\u00a0tag\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8bb0\u4e0b\u8fd9\u4e2a\u6807\u7b7e(tag)\u7684hash\uff0c\u7136\u540e\u7528Git\u7684 update-ref<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0update-ref\u00a0refs\/tags\/&lt;tag_name&gt;\u00a0&lt;hash&gt;\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u65f6\u4f60\u7684\u6807\u7b7e(tag)\u5e94\u8be5\u5df2\u7ecf\u6062\u590d\u4e86\u3002<\/p>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5df2\u5220\u9664\u8865\u4e01(patch)<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u67d0\u4eba\u5728 GitHub \u4e0a\u7ed9\u4f60\u53d1\u4e86\u4e00\u4e2a<code>pull request<\/code>, \u4f46\u662f\u7136\u540e\u4ed6\u5220\u9664\u4e86\u4ed6\u81ea\u5df1\u7684\u539f\u59cb fork, \u4f60\u5c06\u6ca1\u6cd5\u514b\u9686\u4ed6\u4eec\u7684\u63d0\u4ea4(commit)\u6216\u4f7f\u7528\u00a0<code>git am<\/code>\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b, \u6700\u597d\u624b\u52a8\u7684\u67e5\u770b\u4ed6\u4eec\u7684\u63d0\u4ea4(commit)\uff0c\u5e76\u628a\u5b83\u4eec\u62f7\u8d1d\u5230\u4e00\u4e2a\u672c\u5730\u65b0\u5206\u652f\uff0c\u7136\u540e\u505a\u63d0\u4ea4\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u505a\u5b8c\u63d0\u4ea4\u540e, \u518d\u4fee\u6539\u4f5c\u8005\uff0c\u53c2\u89c1\u53d8\u66f4\u4f5c\u8005\u3002\u7136\u540e, \u5e94\u7528\u53d8\u5316, \u518d\u53d1\u8d77\u4e00\u4e2a\u65b0\u7684<code>pull request<\/code>\u3002<\/p>\n<h2 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8ddf\u8e2a\u6587\u4ef6(Tracking Files)<\/h2>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u53ea\u60f3\u6539\u53d8\u4e00\u4e2a\u6587\u4ef6\u540d\u5b57\u7684\u5927\u5c0f\u5199\uff0c\u800c\u4e0d\u4fee\u6539\u5185\u5bb9<\/h3>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0mv\u00a0--force\u00a0myfile\u00a0MyFile\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u4eceGit\u5220\u9664\u4e00\u4e2a\u6587\u4ef6\uff0c\u4f46\u4fdd\u7559\u8be5\u6587\u4ef6<\/h3>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0rm\u00a0--cached\u00a0log.txt\u00a0\u00a0\r\n<\/code><\/pre>\n<h2 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u914d\u7f6e(Configuration)<\/h2>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u7ed9\u4e00\u4e9bGit\u547d\u4ee4\u6dfb\u52a0\u522b\u540d(alias)<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5728 OS X \u548c Linux \u4e0b, \u4f60\u7684 Git\u7684\u914d\u7f6e\u6587\u4ef6\u50a8\u5b58\u5728\u00a0<code>~\/.gitconfig<\/code>\u3002\u6211\u5728<code>[alias]<\/code>\u00a0\u90e8\u5206\u6dfb\u52a0\u4e86\u4e00\u4e9b\u5feb\u6377\u522b\u540d(\u548c\u4e00\u4e9b\u6211\u5bb9\u6613\u62fc\u5199\u9519\u8bef\u7684)\uff0c\u5982\u4e0b:<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>[alias]\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0a\u00a0=\u00a0add\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0amend\u00a0=\u00a0commit\u00a0--amend\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0c\u00a0=\u00a0commit\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0ca\u00a0=\u00a0commit\u00a0--amend\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0ci\u00a0=\u00a0commit\u00a0-a\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0co\u00a0=\u00a0checkout\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0d\u00a0=\u00a0diff\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0dc\u00a0=\u00a0diff\u00a0--changed\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0ds\u00a0=\u00a0diff\u00a0--staged\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0f\u00a0=\u00a0fetch\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0loll\u00a0=\u00a0log\u00a0--graph\u00a0--decorate\u00a0--pretty=oneline\u00a0--abbrev-commit\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0m\u00a0=\u00a0merge\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0one\u00a0=\u00a0log\u00a0--pretty=oneline\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0outstanding\u00a0=\u00a0rebase\u00a0-i\u00a0@{u}\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0s\u00a0=\u00a0status\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0unpushed\u00a0=\u00a0log\u00a0@{u}\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0wc\u00a0=\u00a0whatchanged\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0wip\u00a0=\u00a0rebase\u00a0-i\u00a0@{u}\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0zap\u00a0=\u00a0fetch\u00a0-p\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u60f3\u7f13\u5b58\u4e00\u4e2a\u4ed3\u5e93(repository)\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f60\u53ef\u80fd\u6709\u4e00\u4e2a\u4ed3\u5e93\u9700\u8981\u6388\u6743\uff0c\u8fd9\u65f6\u4f60\u53ef\u4ee5\u7f13\u5b58\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u800c\u4e0d\u7528\u6bcf\u6b21\u63a8\/\u62c9(push\/pull)\u7684\u65f6\u5019\u90fd\u8f93\u5165\uff0cCredential helper\u80fd\u5e2e\u4f60\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0config\u00a0--global\u00a0credential.helper\u00a0cache\u00a0\u00a0\r\n#\u00a0Set\u00a0git\u00a0to\u00a0use\u00a0the\u00a0credential\u00a0memory\u00a0cache\u00a0\u00a0\r\n<\/code><\/pre>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0config\u00a0--global\u00a0credential.helper\u00a0'cache\u00a0--timeout=3600'\u00a0\u00a0\r\n#\u00a0Set\u00a0the\u00a0cache\u00a0to\u00a0timeout\u00a0after\u00a01\u00a0hour\u00a0(setting\u00a0is\u00a0in\u00a0seconds)\u00a0\u00a0\r\n<\/code><\/pre>\n<h3 data-tool=\"mdnice\u7f16\u8f91\u5668\">\u6211\u4e0d\u77e5\u9053\u6211\u505a\u9519\u4e86\u4e9b\u4ec0\u4e48<\/h3>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4f60\u628a\u4e8b\u60c5\u641e\u7838\u4e86\uff1a\u4f60\u00a0<code>\u91cd\u7f6e(reset)<\/code>\u00a0\u4e86\u4e00\u4e9b\u4e1c\u897f, \u6216\u8005\u4f60\u5408\u5e76\u4e86\u9519\u8bef\u7684\u5206\u652f, \u4ea6\u6216\u4f60\u5f3a\u63a8\u4e86\u540e\u627e\u4e0d\u5230\u4f60\u81ea\u5df1\u7684\u63d0\u4ea4(commit)\u4e86\u3002\u6709\u4e9b\u65f6\u5019, \u4f60\u4e00\u76f4\u90fd\u505a\u5f97\u5f88\u597d, \u4f46\u4f60\u60f3\u56de\u5230\u4ee5\u524d\u7684\u67d0\u4e2a\u72b6\u6001\u3002<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u8fd9\u5c31\u662f\u00a0<code>git reflog<\/code>\u00a0\u7684\u76ee\u7684\uff0c\u00a0<code>reflog<\/code>\u00a0\u8bb0\u5f55\u5bf9\u5206\u652f\u9876\u7aef(the tip of a branch)\u7684\u4efb\u4f55\u6539\u53d8, \u5373\u4f7f\u90a3\u4e2a\u9876\u7aef\u6ca1\u6709\u88ab\u4efb\u4f55\u5206\u652f\u6216\u6807\u7b7e\u5f15\u7528\u3002\u57fa\u672c\u4e0a, \u6bcf\u6b21HEAD\u7684\u6539\u53d8, \u4e00\u6761\u65b0\u7684\u8bb0\u5f55\u5c31\u4f1a\u589e\u52a0\u5230<code>reflog<\/code>\u3002\u9057\u61be\u7684\u662f\uff0c\u8fd9\u53ea\u5bf9\u672c\u5730\u5206\u652f\u8d77\u4f5c\u7528\uff0c\u4e14\u5b83\u53ea\u8ddf\u8e2a\u52a8\u4f5c (\u4f8b\u5982\uff0c\u4e0d\u4f1a\u8ddf\u8e2a\u4e00\u4e2a\u6ca1\u6709\u88ab\u8bb0\u5f55\u7684\u6587\u4ef6\u7684\u4efb\u4f55\u6539\u53d8)\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>(main)$\u00a0git\u00a0reflog\u00a0\u00a0\r\n0a2e358\u00a0HEAD@{0}:\u00a0reset:\u00a0moving\u00a0to\u00a0HEAD~2\u00a0\u00a0\r\n0254ea7\u00a0HEAD@{1}:\u00a0checkout:\u00a0moving\u00a0from\u00a02.2\u00a0to\u00a0main\u00a0\u00a0\r\nc10f740\u00a0HEAD@{2}:\u00a0checkout:\u00a0moving\u00a0from\u00a0main\u00a0to\u00a02.2\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u4e0a\u9762\u7684reflog\u5c55\u793a\u4e86\u4ecemain\u5206\u652f\u7b7e\u51fa(checkout)\u52302.2 \u5206\u652f\uff0c\u7136\u540e\u518d\u7b7e\u56de\u3002\u90a3\u91cc\uff0c\u8fd8\u6709\u4e00\u4e2a\u786c\u91cd\u7f6e(hard reset)\u5230\u4e00\u4e2a\u8f83\u65e7\u7684\u63d0\u4ea4\u3002\u6700\u65b0\u7684\u52a8\u4f5c\u51fa\u73b0\u5728\u6700\u4e0a\u9762\u4ee5\u00a0<code>HEAD@{0}<\/code>\u6807\u8bc6.<\/p>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u5982\u679c\u4e8b\u5b9e\u8bc1\u660e\u4f60\u4e0d\u5c0f\u5fc3\u56de\u79fb(move back)\u4e86\u63d0\u4ea4(commit), reflog \u4f1a\u5305\u542b\u4f60\u4e0d\u5c0f\u5fc3\u56de\u79fb\u524dmain\u4e0a\u6307\u5411\u7684\u63d0\u4ea4(0254ea7)\u3002<\/p>\n<pre data-tool=\"mdnice\u7f16\u8f91\u5668\"><code>$\u00a0git\u00a0reset\u00a0--hard\u00a00254ea7\u00a0\u00a0\r\n<\/code><\/pre>\n<p data-tool=\"mdnice\u7f16\u8f91\u5668\">\u7136\u540e\u4f7f\u7528<code>git reset<\/code>\u5c31\u53ef\u4ee5\u628amain\u6539\u56de\u5230\u4e4b\u524d\u7684commit\uff0c\u8fd9\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5728\u5386\u53f2\u88ab\u610f\u5916\u66f4\u6539\u60c5\u51b5\u4e0b\u7684\u5b89\u5168\u7f51\u3002<\/p>\n<\/section>\n<section data-tool=\"mdnice\u7f16\u8f91\u5668\" data-website=\"https:\/\/www.mdnice.com\">\n<section class=\"\">\n<div class=\"appmsg_card_context wx_profile_card js_wx_profile_card js_wx_tap_highlight wx_tap_card\" tabindex=\"0\" role=\"link\" data-id=\"MzA5NjM5NTc5NQ==\" data-isban=\"0\" data-index=\"0\" aria-labelledby=\"js_wx_profile_nickname js_a11y_comma js_wx_profile_signature js_a11y_comma js_profile_desc js_a11y_comma js_wx_profile_logo\">\n<div class=\"wx_profile_card_bd\" aria-hidden=\"true\">\n<div class=\"wx_profile weui-flex\">\n<div class=\"wx_profile_hd\"><img decoding=\"async\" class=\"wx_profile_avatar\" src=\"http:\/\/mmbiz.qpic.cn\/mmbiz_png\/NP2dQRIKOrIGH3JlT3ZfickrsCetmiaoSvG9EpFE9gUR2vsWEDiaqQyGFwMApu48aK1G4l7hvtaucB36hHib2gImuw\/0?wx_fmt=png\" alt=\"\" \/><\/div>\n<div class=\"wx_profile_bd weui-flex weui-flex__item\">\n<div class=\"weui-flex__item\"><strong id=\"js_wx_profile_nickname\" class=\"wx_profile_nickname\">\u5c0f\u5915\u5b66\u7b97\u6cd5<\/strong><\/p>\n<div id=\"js_wx_profile_signature\" class=\"wx_profile_desc\">\u5c0f\u5915\u7528\u52a8\u753b\u3001\u6f2b\u548c\u4e94\u79cd\u7f16\u7a0b\u8bed\u8a00\uff08Java\u3001C++\u3001Python\u3001JS\u3001PHP\uff09\u4e3a\u5927\u5bb6\u8bb2\u89e3\u7b97\u6cd5\uff0c\u5e76\u5206\u4eab\u5927\u5382\u7ecf\u5386\u548c\u9762\u8bd5\u771f\u9898\u3002<\/div>\n<div id=\"js_profile_desc\" class=\"wx_profile_tips\"><span id=\"js_profile_article\" class=\"wx_profile_tips_meta\">77\u7bc7\u539f\u521b\u5185\u5bb9<\/span><\/div>\n<\/div>\n<p><i class=\"weui-icon-arrow\"><\/i><\/div>\n<\/div>\n<\/div>\n<div id=\"js_wx_profile_logo\" class=\"wx_profile_card_ft\" aria-hidden=\"true\">\u516c\u4f17\u53f7<\/div>\n<\/div>\n<\/section>\n<\/section>\n<\/div>\n<\/div>\n<div id=\"content_bottom_area\">\n<div class=\"share_mod_context share_global_info\">\n<div class=\"rich_media_tool__wrp\">\n<div id=\"js_toobar3\" class=\"rich_media_tool\">\n<div class=\"weui-flex\">\n<div class=\"weui-flex__item\">\n<div id=\"js_read_area3\" class=\"media_tool_meta tips_global_primary meta_primary js_media_tool_meta\" role=\"option\"><span id=\"readTxt\">\u9605\u8bfb<\/span><span id=\"readNum3\">\u00a01224<\/span><\/div>\n<\/div>\n<\/div>\n<div id=\"js_bottom_opr_right\" class=\"weui-flex sns_opr_area sns_opr_overflow\">\n<div class=\"weui-flex__item\"><span id=\"js_bottom_share\" class=\"media_tool_meta meta_primary meta_share js_media_tool_meta\"><button id=\"js_bottom_share_btn\" class=\"sns_opr_btn sns_share_btn weui-wa-hotarea js_wx_tap_highlight wx_tap_link\"><span class=\"sns_opr_gap\">\u5206\u4eab<\/span><\/button><\/span><span id=\"js_bottom_collect\" class=\"media_tool_meta meta_primary meta_collect js_media_tool_meta\"><button id=\"js_bottom_collect_btn\" class=\"sns_opr_btn sns_collect_btn weui-wa-hotarea js_wx_tap_highlight wx_tap_link\"><span class=\"sns_opr_gap\">\u6536\u85cf<\/span><\/button><\/span><\/div>\n<div class=\"weui-flex__item\"><span id=\"like_old\" class=\"media_tool_meta meta_extra meta_praise js_media_tool_meta\"><button class=\"sns_opr_btn sns_praise_btn weui-wa-hotarea js_wx_tap_highlight wx_tap_link\" aria-labelledby=\"js_a11y_zan_btn_txt likeNum_old\" aria-describedby=\"\"><span id=\"likeNum_old\" class=\"sns_opr_num sns_opr_gap\">6<\/span><\/button><\/span><span id=\"like3\" class=\"media_tool_meta meta_extra meta_like js_media_tool_meta\"><button id=\"js_like_btn\" class=\"sns_opr_btn sns_like_btn weui-wa-hotarea js_wx_tap_highlight wx_tap_link\" aria-labelledby=\"js_a11y_like_btn_txt likeNum3\" aria-describedby=\"\"><span id=\"likeNum3\" class=\"sns_opr_num sns_opr_gap\">3<\/span><\/button><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"rich_media_area_extra\">\n<div class=\"rich_media_area_extra_inner\">\n<div id=\"js_like_profile_container\" class=\"wx_follow_container\"><\/div>\n<div id=\"js_related_container\" class=\"related_container\"><\/div>\n<div id=\"page_bottom_area\">\n<div class=\"mpda_bottom_container\"><\/div>\n<div class=\"rich_media_extra rich_media_extra_discuss\">\n<div class=\"comment_primary_area\">\n<div class=\"comment_primary_form\">\n<div class=\"comment_primary_form_bd comment_primary_input_multiline\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740 \u6587\u7ae0\u8f6c\u8f7d\u4e8e\uff1a\u6c5f\u5357\u4e00\u70b9\u96e8\u00a0\u00a0 G<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[24],"tags":[121],"class_list":["post-5710","post","type-post","status-publish","format-standard","hentry","category-value_docs","tag-05-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/5710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=5710"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/5710\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=5710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=5710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=5710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}