{"id":653,"date":"2022-03-29T10:49:07","date_gmt":"2022-03-29T02:49:07","guid":{"rendered":"http:\/\/47.98.165.52\/?p=653"},"modified":"2022-10-31T02:19:24","modified_gmt":"2022-10-30T18:19:24","slug":"git-commands","status":"publish","type":"post","link":"\/?p=653","title":{"rendered":"git-commands"},"content":{"rendered":"<h3>\u4e00\u3001\u6982\u5ff5<\/h3>\n<h4>1.\u4e3a\u4ec0\u4e48\u8981\u4f7f\u7528Git<\/h4>\n<p>\u4e3a\u4e86\u66f4\u597d\u7684\u53bb\u7ba1\u7406\u6211\u4eec\u6bcf\u6b21\u7684\u66f4\u6539\uff08\u7248\u672c\u63a7\u5236\uff09<\/p>\n<h4>2.Git\u7684\u8bde\u751f<\/h4>\n<ul>\n<li>linux\u4e4b\u7236\uff1aLinus<\/li>\n<li>linux\u5f00\u6e90<\/li>\n<li>\u63d0\u4ea4\u8865\u4e01\u548c\u4fdd\u5b58\u5f52\u6863<\/li>\n<li>2002\uff0c\u4e13\u6709\u7684\u5206\u5e03\u5f0f\u7248\u672c\u63a7\u5236\u7cfb\u7edfbitkeeper\u6765\u7ba1\u7406\u548c\u7ef4\u62a4\u4ee3\u7801<\/li>\n<li>2005\uff0c\u7ed3\u675f\uff0c\u6536\u56de\u4f7f\u7528\u6743<\/li>\n<li>2\u4e2a\u661f\u671f\u7528c\u5199\u51fa\u6765<\/li>\n<li>\u6e90\u4ee3\u7801\u7ba1\u7406\u7684\u597d\u5904\uff1a\u65b9\u4fbf\u591a\u4eba\u534f\u540c\u5f00\u53d1\uff1b\u65b9\u4fbf\u7248\u672c\u63a7\u5236<\/li>\n<\/ul>\n<h4>3.\u7ed3\u6784\u5206\u6790<\/h4>\n<p><img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/1631109420501.png\" alt=\"1631109420501\" \/><\/p>\n<h3>\u4e8c\u3001\u64cd\u4f5c<\/h3>\n<h4>1.\u5b89\u88c5<\/h4>\n<ul>\n<li>\n<p>ubuntu\u4e0b\u5b89\u88c5<\/p>\n<pre><code>sudo apt-get install git<\/code><\/pre>\n<\/li>\n<li>\n<p>windows\u4e0b\u5b89\u88c5<\/p>\n<p><a href=\"https:\/\/gitforwindows.org\/\">gitforwindows\u5b98\u7f51<\/a><\/p>\n<p><a href=\"https:\/\/github.com\/git-for-windows\/git\/releases\/download\/v2.22.0.windows.1\/Git-2.22.0-64-bit.exe\">\u70b9\u51fb\u4e0b\u8f7d<\/a><\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"language-shell\">git --version\ngit --help<\/code><\/pre>\n<h4>2.\u521b\u5efa\u672c\u5730\u4ed3\u5e93<\/h4>\n<h5>\u65b9\u5f0f\u4e00\uff1a\u5f53\u524d\u76ee\u5f55\u4f5c\u4e3agit\u4ed3\u5e93<\/h5>\n<pre><code class=\"language-shell\"># \u521d\u59cb\u5316\ngit init\n#\u5df2\u521d\u59cb\u5316\u4ed3\u5e93\n>&gt;&gt;Initialized empty Git repository in \/home\/lemon\/.git\/<\/code><\/pre>\n<h5>\u65b9\u5f0f\u4e8c\uff1a\u6307\u5b9a\u76ee\u5f55\u4f5c\u4e3aGit\u4ed3\u5e93<\/h5>\n<pre><code class=\"language-shell\">git init \u6307\u5b9a\u76ee\u5f55<\/code><\/pre>\n<h4>3.\u914d\u7f6e\u4e2a\u4eba\u4fe1\u606f<\/h4>\n<pre><code class=\"language-shell\"># 1.\u5168\u5c40\u914d\u7f6e\u4e2a\u4eba\u4fe1\u606f\ngit config --global user.name &quot;xf&quot;\ngit config --global user.email &quot;xf@mq.com&quot;\n# \u914d\u7f6e\u4fe1\u606f\u5728\u5bb6\u76ee\u5f55\u4e0b  ~\/.gitconfig\n===========================================\n# 2.\u9488\u5bf9\u9879\u76ee\u914d\u7f6e\u4e2a\u4eba\u4fe1\u606f\ngit config user.name &quot;xf&quot;\ngit config user.email &quot;xf@mq.com&quot;\n# \u914d\u7f6e\u4fe1\u606f\u5728  .git\/config<\/code><\/pre>\n<p><img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/image-20210910010626157.png\" alt=\"image-20210910010626157\" \/><\/p>\n<h4>4.\u6587\u4ef6\u6dfb\u52a0\u3001\u4fee\u6539<\/h4>\n<pre><code class=\"language-shell\">git status\ngit add \u6587\u4ef6 # \u5de5\u4f5c\u533a---\u300b\u6682\u5b58\u533a\ngit add . # \u5168\u90e8\u6587\u4ef6\ngit commit -m &#039;\u5907\u6ce8\u4fe1\u606f&#039; # \u6682\u5b58\u533a---\u300b\u4ed3\u5e93\ngit commit -am &quot;\u5907\u6ce8\u4fe1\u606f&quot;# \u5de5\u4f5c\u533a---\u300b\u4ed3\u5e93<\/code><\/pre>\n<h4>5.\u67e5\u770b\u5386\u53f2\u8bb0\u5f55<\/h4>\n<pre><code class=\"language-shell\">git log [option]\ngit log --pretty=oneline \u5c06\u63d0\u4ea4\u4fe1\u606f\u663e\u793a\u4e3a\u4e00\u884c\ngit log --all  \u663e\u793a\u6240\u6709\u5206\u652f\ngit log --abbrev-commit \u4f7f\u5f97\u8f93\u51fa\u7684commitId\u66f4\u7b80\u77ed\ngit log --graph \u4ee5\u56fe\u7684\u5f62\u5f0f\u663e\u793a\n================================\n\u7b80\u5316\uff1a\n# \u7528\u4e8e\u8f93\u51fagit\u63d0\u4ea4\u65e5\u5fd7\nalias git-log='git log --pretty=oneline --all --abbrev-commit --graph'\n# \u7528\u4e8e\u8f93\u51fa\u5f53\u524d\u76ee\u5f55\u6240\u6709\u6587\u4ef6\u53ca\u57fa\u672c\u4fe1\u606f\nalias ll='ls -al'\n\n================================\ngit reflog # \u5220\u9664commit\uff0c\u4e5f\u80fd\u67e5\u8be2\n**\ngit reflog\u7528\u7684\u591a\n**\ngit diff HEAD -- readme.txt# \u67e5\u770b\u4fee\u6539\u7684difference<\/code><\/pre>\n<h4>6.\u56de\u9000\u7248\u672c<\/h4>\n<pre><code class=\"language-shell\">git reset\n\n--soft(\u56de\u9000\u4ed3\u5e93\uff09\n--mixed(\u56de\u9000\u4ed3\u5e93\u3001\u6682\u5b58\u533a\uff09\n--hard (\u56de\u9000\u4ed3\u5e93\u3001\u6682\u5b58\u533a\u3001\u5de5\u4f5c\u533a)\n#--hard\u7528\u7684\u591a\n\nHEAD\n -HEAD \u5f53\u524d\u7248\u672c\n -HEAD^ \u4e0a\u4e00\u4e2a\u7248\u672c\n -HEAD^^\u4e0a\u4e0a\u4e00\u4e2a\u7248\u672c\n \u3002\u3002\u3002\u3002\n ~\u6570\u5b57\n -HEAD~0 \u5f53\u524d\u7248\u672c\n -HEAD~1 \u4e0a\u4e00\u4e2a\u7248\u672c\n \u3002\u3002\u3002\u3002\n\n \u7248\u672c\u53f7<\/code><\/pre>\n<p><img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/image-20210910013014529.png\" alt=\"image-20210910013014529\" \/><\/p>\n<p>\u64a4\u9500\u7f13\u5b58\u533a<\/p>\n<p><img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/image-20210910013455787.png\" alt=\"image-20210910013455787\" \/><\/p>\n<ul>\n<li>\u4ece\u5de5\u4f5c\u533a\u548c\u4ed3\u5e93\u533a\u4e2d\u95f4\u7684\u6682\u5b58\u533a\uff0c\u64a4\u56de\u5230\u5de5\u4f5c\u533a<\/li>\n<\/ul>\n<pre><code class=\"language-shell\">git reset HEAD &lt;file&gt;\ngit reset --hard 4b8ed33 # \u5e8f\u53f7\u53ef\u7528reflog\u67e5\u770b<\/code><\/pre>\n<h4>7.\u5220\u9664<\/h4>\n<p>\u5728Git\u4e2d\uff0c\u5220\u9664\u4e5f\u662f\u4e00\u4e2a\u4fee\u6539\u64cd\u4f5c\uff0c\u6211\u4eec\u5b9e\u6218\u4e00\u4e0b\uff0c\u5148\u6dfb\u52a0\u4e00\u4e2a\u65b0\u6587\u4ef6<code>test.txt<\/code>\u5230Git\u5e76\u4e14\u63d0\u4ea4\uff1a<\/p>\n<pre><code class=\"language-bash\">$ git add test.txt\n\n$ git commit -m &quot;add test.txt&quot;\n[master b84166e] add test.txt\n 1 file changed, 1 insertion(+)\n create mode 100644 test.txt<\/code><\/pre>\n<p>\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u4f60\u901a\u5e38\u76f4\u63a5\u5728\u6587\u4ef6\u7ba1\u7406\u5668\u4e2d\u628a\u6ca1\u7528\u7684\u6587\u4ef6\u5220\u4e86\uff0c\u6216\u8005\u7528<code>rm<\/code>\u547d\u4ee4\u5220\u4e86\uff1a<\/p>\n<pre><code class=\"language-bash\">$ rm test.txt<\/code><\/pre>\n<p>\u8fd9\u4e2a\u65f6\u5019\uff0cGit\u77e5\u9053\u4f60\u5220\u9664\u4e86\u6587\u4ef6\uff0c\u56e0\u6b64\uff0c\u5de5\u4f5c\u533a\u548c\u7248\u672c\u5e93\u5c31\u4e0d\u4e00\u81f4\u4e86\uff0c<code>git status<\/code>\u547d\u4ee4\u4f1a\u7acb\u523b\u544a\u8bc9\u4f60\u54ea\u4e9b\u6587\u4ef6\u88ab\u5220\u9664\u4e86\uff1a<\/p>\n<pre><code class=\"language-bash\">$ git status\nOn branch master\nChanges not staged for commit:\n  (use &quot;git add\/rm &lt;file&gt;...&quot; to update what will be committed)\n  (use &quot;git checkout -- &lt;file&gt;...&quot; to discard changes in working directory)\n\n    deleted:    test.txt\n\nno changes added to commit (use &quot;git add&quot; and\/or &quot;git commit -a&quot;)<\/code><\/pre>\n<p>\u73b0\u5728\u4f60\u6709\u4e24\u4e2a\u9009\u62e9\uff0c\u4e00\u662f\u786e\u5b9e\u8981\u4ece\u7248\u672c\u5e93\u4e2d\u5220\u9664\u8be5\u6587\u4ef6\uff0c\u90a3\u5c31\u7528\u547d\u4ee4<code>git rm<\/code>\u5220\u6389\uff0c\u5e76\u4e14<code>git commit<\/code>\uff1a<\/p>\n<pre><code class=\"language-bash\">$ git rm test.txt\nrm &#039;test.txt&#039;\n\n$ git commit -m &quot;remove test.txt&quot;\n[master d46f35e] remove test.txt\n 1 file changed, 1 deletion(-)\n delete mode 100644 test.txt<\/code><\/pre>\n<p>\u73b0\u5728\uff0c\u6587\u4ef6\u5c31\u4ece\u7248\u672c\u5e93\u4e2d\u88ab\u5220\u9664\u4e86\u3002<\/p>\n<p>\u53e6\u4e00\u79cd\u60c5\u51b5\u662f\u5220\u9519\u4e86\uff0c\u56e0\u4e3a\u7248\u672c\u5e93\u91cc\u8fd8\u6709\u5462\uff0c\u6240\u4ee5\u53ef\u4ee5\u5f88\u8f7b\u677e\u5730\u628a\u8bef\u5220\u7684\u6587\u4ef6\u6062\u590d\u5230\u6700\u65b0\u7248\u672c\uff1a<\/p>\n<pre><code class=\"language-bash\">$ git checkout -- test.txt<\/code><\/pre>\n<p><code>git checkout<\/code>\u5176\u5b9e\u662f\u7528\u7248\u672c\u5e93\u91cc\u7684\u7248\u672c\u66ff\u6362\u5de5\u4f5c\u533a\u7684\u7248\u672c\uff0c\u65e0\u8bba\u5de5\u4f5c\u533a\u662f\u4fee\u6539\u8fd8\u662f\u5220\u9664\uff0c\u90fd\u53ef\u4ee5\u201c\u4e00\u952e\u8fd8\u539f\u201d\u3002<\/p>\n<h4>8.\u5206\u652f<\/h4>\n<pre><code class=\"language-shell\"># \u67e5\u770b\u5206\u652f\ngit branch\ngit branch -v\n\n# \u521b\u5efa\u5206\u652f\ngit branch \u5206\u652f\u540d\n\n# \u5207\u6362\u5206\u652f\ngit checkout \u5206\u652f\u540d\n# \u6216\u8005\uff1a\ngit switch &lt;name&gt;\n\n# -b:\u521b\u5efa\u5e76\u5207\u6362\ngit checkout -b dev\n# \u6216\u8005\ngit switch -c dev\n\n# \u76f8\u5f53\u4e8e\u4e24\u6761\u547d\u4ee4\uff1a \n$ git branch dev\n$ git checkout dev\n\n# \u5408\u5e76\u5206\u652f\n\u5408\u5e76\u5230\u4f60\u7684\u4e3b\u5206\u652f\uff0c\u4e00\u5b9a\u8981checkout\u56de\u4e3b\u5206\u652f\ngit merge feifei(\u81ea\u5df1\u7684\u5206\u652f)\n\n# \u5408\u5e76\u51b2\u7a81\n\u573a\u666f\uff1a\u4e24\u4e2a\u5206\u652f\u5728\u540c\u4e00\u4e2a\u6587\u4ef6\u7684\u540c\u4e00\u4e2a\u4f4d\u7f6e\u6709\u4e24\u5957\u4e0d\u540c\u7684\u4fee\u6539\u3002Git\u65e0\u6cd5\u51b3\u5b9a\u7528\u54ea\u4e00\u4e2a\uff0c\u5fc5\u987b\u4eba\u4e3a\u6765\u51b3\u5b9a\nvim\ngit add .\ngit commit -m &#039;\u5907\u6ce8&#039;\n\n# \u5220\u9664\u5206\u652f\ngit branch -d &lt;name&gt;<\/code><\/pre>\n<h4>9. \u8fdc\u7a0b\u4ed3\u5e93<\/h4>\n<pre><code class=\"language-bash\"># \u8fde\u63a5\u8fdc\u7a0b\u5e93(SSH)\n$ git remote add origin git@gitee.com:lemon_guess\/test4854.git\n\n# \u8fde\u63a5\u8fdc\u7a0b\u5e93(HTTPS)\n$ git remote add origin git@gitee.com:lemon_guess\/test.git <\/code><\/pre>\n<p>\u6dfb\u52a0\u540e\uff0c\u8fdc\u7a0b\u5e93\u7684\u540d\u5b57\u5c31\u662f<code>origin<\/code>\uff0c\u8fd9\u662fGit\u9ed8\u8ba4\u7684\u53eb\u6cd5\uff0c\u4e5f\u53ef\u4ee5\u6539\u6210\u522b\u7684\uff0c\u4f46\u662f<code>origin<\/code>\u8fd9\u4e2a\u540d\u5b57\u4e00\u770b\u5c31\u77e5\u9053\u662f\u8fdc\u7a0b\u5e93\u3002<\/p>\n<pre><code class=\"language-bash\"># \u67e5\u770b\u8fdc\u7a0b\u5e93\u4fe1\u606f\n$ git remote -v\n\n# \u79fb\u9664\u6389\u8fdc\u7a0b\u4ed3\u5e93\u7684\u914d\u7f6e\n$ git remote rm origin\n\n# \u9488\u5bf9\u672c\u9879\u76ee\u914d\u7f6e\u4e2a\u4eba\u4fe1\u606f\ngit config user.name &quot;xf&quot;\ngit config user.email &quot;xf@mq.com&quot;\n\n# \u4ee3\u7801\u63a8\u9001\u5230\u8fdc\u7a0b\u4ed3\u5e93\ngit push \u8fdc\u7a0b\u4ed3\u5e93\u522b\u540d \u5206\u652f\u540d\n\n# \u4ee3\u7801\u62c9\u53d6\u5230\u672c\u5730\u4ed3\u5e93\ngit pull \u8fdc\u7a0b\u4ed3\u5e93\u522b\u540d \u5206\u652f\u540d<\/code><\/pre>\n<h3>Gitee\u76f8\u5173<\/h3>\n<p>\u53c2\u8003\u94fe\u63a5\uff1a<a href=\"https:\/\/gitee.com\/help\/articles\/4181#article-header0\">https:\/\/gitee.com\/help\/articles\/4181#article-header0<\/a><br \/>\n1.\u751f\u6210\u5bc6\u94a5<\/p>\n<pre><code class=\"language-shell\">$ ssh-keygen -t rsa -C &quot;lemon_guess@163.com&quot;<\/code><\/pre>\n<p>\u7136\u540e\u4e00\u8defenter\uff0c\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n<p><img src=\"https:\/\/lemon-guess.oss-cn-hangzhou.aliyuncs.com\/img\/image-20220329105419319.png\" alt=\"image-20220329105419319\" \/><br \/>\n2.\u67e5\u770b\u516c\u94a5<\/p>\n<pre><code class=\"language-shell\">$ cat \/home\/lemon\/.ssh\/id_rsa.pub<\/code><\/pre>\n<p>3.\u8fde\u63a5\u6d4b\u8bd5<\/p>\n<pre><code class=\"language-shell\">$ ssh -T git@gitee.com<\/code><\/pre>\n<h3>\u56db\u3001\u5e38\u89c1\u95ee\u9898<\/h3>\n<h4>\u95ee\u9898\u4e00\uff1a<\/h4>\n<p><strong>\u522b\u4eba\u5148\u63d0\u4ea4\u4e86\u81ea\u5df1\u7684\u5de5\u4f5c\u4ee3\u7801\u5230\u8fdc\u7a0b\u4ed3\u5e93\uff0c\u5bfc\u81f4\u81ea\u5df1\u63d0\u4ea4\u65f6\u65f6\uff0c\u7531\u4e8e\u81ea\u5df1\u5f53\u524d\u7248\u672c\u843d\u540e\u8fdc\u7a0b\u6700\u65b0\u7248\u672c\uff0c\u5bfc\u81f4\u63d0\u4ea4\u5931\u8d25\u3002<\/strong><\/p>\n<p>\u89e3\u51b3\uff1a\u5f53\u524d\u5206\u652f\u843d\u540e\u4e86\u8fdc\u7a0b\u4ed3\u5e93\u7684\u5206\u652f\uff0c\u63a8\u9001\u4e0d\u8fdb\u53bb\u5982\u4f55\u89e3\u51b3\u5462\uff01<\/p>\n<pre><code class=\"language-bash\"># 1. \u4f7f\u7528git stash save &quot;\u6682\u5b58&quot; \u5c06\u81ea\u5df1\u4fee\u6539\u7684\u4ee3\u7801\uff0c\u8fdb\u884c\u4e00\u4e2a\u672c\u5730\u4ed3\u5e93\u7684\u4e34\u65f6\u7f13\u5b58\u3002\n\n$ git stash save &quot;\u6682\u5b58&quot;\nSaved working directory and index state On master: \u6682\u5b58\n\n# 2. \u4f7f\u7528git stash list \u67e5\u770b\u7f13\u5b58\u4ee3\u7801\u7247\u6bb5\u3002\n\n$ git stash list\nstash@{0}: On master: \u6682\u5b58\n\n# 3. \u6267\u884cpull\u547d\u4ee4 \u5c06\u8fdc\u7a0b\u4ed3\u5e93\u66f4\u65b0\u5230\u672c\u5730\u3002\n\n$ git pull origin master\n\n# 4. \u5c06\u6211\u4eec\u7684\u4fee\u6539\u5408\u5e76\u5230\u66f4\u65b0\u540e\u7684\u4ee3\u7801\u4e2d\uff0cstash@{0} \u5c31\u662f\u6211\u4eec\u81ea\u5df1\u6682\u5b58\u7684\u6807\u8bb0\n\n$ git stash pop stash@{0}\n\n# 5. \u56de\u5230\u81ea\u5df1\u4ee3\u7801\u4e2d\uff0c\u5408\u5e76\u6216\u5220\u9664\u4e0d\u9700\u8981\u7684\u4ee3\u7801\u3002\n\n# 6. git status \u67e5\u770b\u6587\u4ef6\u4fee\u6539\u72b6\u6001\n\n# 7. git checkout  \u6587\u4ef6\u540d\u79f0  \uff08\u5404\u4e2a\u6587\u4ef6\u540d\u4e4b\u95f4\u7528\u7a7a\u683c  \u9694\u5f00\uff09  \u64a4\u9500\u4e0d\u9700\u8981\u7684\u63d0\u4ea4\u6587\u4ef6\n\n# 8. git add \u63d0\u4ea4\u6587\u4ef6\u540d\u79f0    (\u5404\u4e2a\u6587\u4ef6\u540d\u4e4b\u95f4\u7528\u7a7a\u683c  \u9694\u5f00)  \u9700\u8981\u63d0\u4ea4\u7684\u6587\u4ef6\u3002\u4e0d\u5efa\u8bae\u76f4\u63a5\u4f7f\u7528git add .\n\n# 9. git commit \u2013m\u201d  \u4fee\u6539\u8bb0\u5f55\u8bf4\u660e\u201d  \u63d0\u4ea4\u5230\u672c\u5730\u4ed3\u5e93\n\n# 10. git push origin master \u662f\u63a8\u5230\u8fdc\u7a0bmaster\u5e93<\/code><\/pre>\n<h4>\u95ee\u9898\u4e8c:<\/h4>\n<p><strong>\u5728\u4f7f\u7528git\u534f\u540c\u5f00\u53d1\u65f6\uff0c\u96be\u514d\u4f1a\u51fa\u73b0\u4e0d\u540c\u7684\u4eba\u5458\uff0c\u540c\u65f6\u4fee\u6539\u67d0\u4e2a\u6587\u4ef6\u5bfc\u81f4\u4ee3\u7801\u51b2\u7a81\u7684\u95ee\u9898\u3002<\/strong><\/p>\n<p>\u8fd9\u65f6\u5019\u6211\u4eec\u63d0\u4ea4\u4ee3\u7801\u524d\uff0c\u5e94\u8be5\u9996\u5148\u83b7\u53d6\u8fdc\u7a0b\u6700\u65b0\u7248\u672c\uff0c\u4e0e\u672c\u5730\u7248\u672c\u5408\u5e76\u3002\u56de\u5230\u4ee3\u7801\u4e2d\u89e3\u51b3\u51b2\u7a81\uff0c\u5728\u505a\u63d0\u4ea4\u3002<\/p>\n<pre><code class=\"language-bash\"># \u67e5\u8be2\u5f53\u524d\u8fdc\u7a0b\u7684\u7248\u672c\n$ git remote -v\n# \u83b7\u53d6\u6700\u65b0\u4ee3\u7801\u5230\u672c\u5730(\u672c\u5730\u5f53\u524d\u5206\u652f\u4e3a[master]\uff0c\u83b7\u53d6\u7684\u8fdc\u7aef\u7684\u5206\u652f\u4e3a[origin\/master])\n$ git fetch origin master  [\u793a\u4f8b1\uff1a\u83b7\u53d6\u8fdc\u7aef\u7684origin\/master\u5206\u652f]\n$ git fetch origin pin[\u793a\u4f8b2\uff1a\u83b7\u53d6\u8fdc\u7aef\u7684origin\/pin\u5206\u652f]\n# \u67e5\u770b\u7248\u672c\u5dee\u5f02\n$ git log -p master..origin\/master [\u793a\u4f8b1\uff1a\u67e5\u770b\u672c\u5730master\u4e0e\u8fdc\u7aeforigin\/master\u7684\u7248\u672c\u5dee\u5f02]\n$ git log -p dev..origin\/pin[\u793a\u4f8b2\uff1a\u67e5\u770b\u672c\u5730dev\u4e0e\u8fdc\u7aeforigin\/dev\u7684\u7248\u672c\u5dee\u5f02]\n# \u5408\u5e76\u6700\u65b0\u4ee3\u7801\u5230\u672c\u5730\u5206\u652f\n$ git merge origin\/master  [\u793a\u4f8b1\uff1a\u5408\u5e76\u8fdc\u7aef\u5206\u652forigin\/master\u5230\u5f53\u524d\u5206\u652f]\n$ git merge origin\/pin[\u793a\u4f8b2\uff1a\u5408\u5e76\u8fdc\u7aef\u5206\u652forigin\/dev\u5230\u5f53\u524d\u5206\u652f]<\/code><\/pre>\n<h4>\u95ee\u9898\u4e09\uff1a<\/h4>\n<p><strong>\u6709\u65f6\u5019\uff0c\u6211\u4eec\u7528Git\u7684\u65f6\u5019\u6709\u53ef\u80fdcommit\u63d0\u4ea4\u4ee3\u7801\u540e\uff0c\u53d1\u73b0\u8fd9\u4e00\u6b21commit\u7684\u5185\u5bb9\u662f\u6709\u9519\u8bef\u7684<\/strong><\/p>\n<p>\u90a3\u4e48\u6709\u4e24\u79cd\u5904\u7406\u65b9\u6cd5\uff1a <\/p>\n<p>1\u3001\u4fee\u6539\u9519\u8bef\u5185\u5bb9\uff0c\u518d\u6b21commit\u4e00\u6b21  <\/p>\n<p>2\u3001\u4f7f\u7528git reset \u547d\u4ee4\u64a4\u9500\u8fd9\u4e00\u6b21\u9519\u8bef\u7684commit<\/p>\n<pre><code class=\"language-bash\">$ git reset --soft HEAD^  # \u64a4\u9500\u8fd9\u4e00\u6b21\u9519\u8bef\u7684commit<\/code><\/pre>\n<h4>\u95ee\u9898\u56db\uff1a<\/h4>\n<p><strong>\u65e5\u5e38\u5f00\u53d1\u4e2d\uff0c\u7531\u4e8e\u4e00\u4e2a\u9879\u76ee\u53ef\u80fd\u6709\u591a\u4e2a\u4eba\u7ef4\u62a4\uff0c\u6bcf\u4e2a\u4eba\u5f00\u53d1\u4e0d\u540c\u7684\u6a21\u677f\uff0c\u9020\u6210\u522b\u4eba\u63d0\u4ea4\u4e86\u4ee3\u7801\u518d\u5f53\u4f60\u63d0\u4ea4\u4ee3\u7801\u65f6\u63d0\u793a\u7248\u672c\u4e0d\u4e00\u81f4\uff0c\u65e0\u6cd5push\u3002<\/strong><\/p>\n<p>\u89e3\u51b3\u529e\u6cd5\uff1a<br \/>\n1.\u9996\u5148\u5c06\u8fdc\u7a0b\u4ed3\u5e93\u7684master(\u6216dev)\u4e0b\u8f7d\u5230\u672c\u5730\u7684\u5206\u652f\u4e0a<\/p>\n<pre><code class=\"language-bash\">$ git fetch origin master:tmp<\/code><\/pre>\n<p>2.\u67e5\u770btmp\u5206\u652f\u4e0e\u672c\u5730\u6709\u4ec0\u4e48\u4e0d\u540c<\/p>\n<pre><code class=\"language-bash\">$ git diff tmp<\/code><\/pre>\n<p>3.\u5c06tmp\u5206\u652f\u4e0e\u672c\u5730\u5206\u652f\u7ed3\u5408<\/p>\n<pre><code class=\"language-bash\">$ git merge tmp<\/code><\/pre>\n<p>\u8fd9\u65f6\u5019\u53ef\u80fd\u4f1a\u51fa\u73b0\u4e24\u4e2a\u7248\u672c\u6709\u51b2\u7a81\u7684\u754c\u9762\uff0c\u51fa\u73b0\u8fd9\u4e2a\u754c\u9762\u4e0d\u8981\u614c\uff0c\u5982\u679c\u60f3\u9000\u51fa\u8fd9\u4e2a\u754c\u9762\u7684\u8bdd\uff0c\u6309\u201cq\u201d<br \/>\n\u7136\u540e\u7528idea\u6253\u5f00\u9879\u76ee\uff0c\u770b\u770b\u6709\u54ea\u4e9b\u6587\u4ef6\u6709\u51b2\u7a81\uff0c\u4e00\u822c\u53d8\u7ea2\u8272\u7684\u6587\u4ef6\u662f\u6709\u51b2\u7a81\u7684\u5730\u65b9<\/p>\n<p>\u7b2c\u4e00\u6b65\uff1a\u5728&lt;&lt;&lt;&lt;&lt;&lt;&lt; &lt;\u5206\u652f\u540d&gt; ======== &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&lt;\u5206\u652f\u540d&gt; \u5220\u6389\uff0c\u51b2\u7a81\u4ee3\u7801\u81ea\u884c\u5408\u5e76\u4fee\u6539<br \/>\n\u7b2c\u4e8c\u6b65\uff1a<\/p>\n<p>git add &lt;\u5df2\u4fee\u6539\u51b2\u7a81\u6587\u4ef6&gt;\uff0c\u6bd4\u5982pom.xml<\/p>\n<pre><code class=\"language-bash\">$ git add pom.xml<\/code><\/pre>\n<p>\u7b2c\u4e09\u6b65\uff1a\u5408\u5e76\uff0c\u6ce8\u610f\uff1a\u8fd9\u91cccommit\u63d0\u4ea4\u65f6\u4e0d\u80fd\u5e26\u4e0a\u6587\u4ef6<\/p>\n<pre><code class=\"language-bash\">$ git commit -m &quot;\u5408\u5e76\u65e5\u5fd7&quot;<\/code><\/pre>\n<p>\u5206\u652f\u540d\u7531\uff08first|MERGING\uff09\u53d8\u6210\uff08first\uff09\u8bf4\u660e\u5408\u5e76\u6210\u529f<br \/>\n\u5982\u679c\u4e0d\u77e5\u9053\u600e\u4e48add\u51b2\u7a81\u6587\u4ef6\uff0c\u53ef\u4ee5\u5148\u6267\u884c\u7b2c\u4e09\u6b65\uff0c\u5b83\u4f1a\u63d0\u793a\u4f60\u54ea\u4e9b\u6587\u4ef6\u51b2\u7a81\u6ca1\u6dfb\u52a0\uff0c\u518d\u8fdb\u884c\u4e8c\u3001\u4e09\u6b65\u3002<\/p>\n<p>\u7531\u4e8e\u4e00\u4e2a\u9879\u76ee\u6709\u591a\u4e2a\u4eba\u7ef4\u62a4\uff0c\u4e0d\u53ef\u80fd\u76f4\u63a5\u63d0\u4ea4\u5230\u8fdc\u7a0bmaster\uff0c\u90a3\u4e48\u6211\u4eec\u5c31\u63d0\u4ea4\u5230\u8fdc\u7a0b\u5206\u652f\u4e0a<\/p>\n<pre><code class=\"language-bash\">$ git push origin master:dev<\/code><\/pre>\n<p>\u5982\u679c\u8fdc\u7a0b\u4ed3\u5e93\u4e0a\u6709dev\u5206\u652f\uff0c\u5219\u76f4\u63a5\u63d0\u4ea4\u5230\u8fd9\u4e2a\u5206\u652f\uff1b\u5982\u679c\u6ca1\u6709\uff0c\u5219\u521b\u5efa\u3002<\/p>\n<p>4.\u6700\u540e\u522b\u5fd8\u4e86\u5220\u9664\u5206\u652f<\/p>\n<pre><code class=\"language-bash\">$ git branch -d tmp  <\/code><\/pre>\n<p>\u8865\uff1a\u672c\u5730\u5207\u6362\u5206\u652f\u4e3a<\/p>\n<pre><code class=\"language-bash\">$ git checkout dev # \u5207\u5230dev\u5206\u652f<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001\u6982\u5ff5 1.\u4e3a\u4ec0\u4e48\u8981\u4f7f\u7528Git \u4e3a\u4e86\u66f4\u597d\u7684\u53bb\u7ba1\u7406\u6211\u4eec\u6bcf\u6b21\u7684\u66f4\u6539\uff08\u7248\u672c\u63a7\u5236\uff09 2.Git\u7684\u8bde\u751f linux\u4e4b\u7236\uff1aLinus linux\u5f00   \u2026 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[10],"tags":[8],"_links":{"self":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts\/653"}],"collection":[{"href":"\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=653"}],"version-history":[{"count":5,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/653\/revisions"}],"predecessor-version":[{"id":1364,"href":"\/index.php?rest_route=\/wp\/v2\/posts\/653\/revisions\/1364"}],"wp:attachment":[{"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=653"},{"taxonomy":"post_tag","embeddable":true,"href":"\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}