<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Git on 云雾海的博客</title><link>https://blog.yunwuhai.com/tags/git/</link><description>Recent content in Git on 云雾海的博客</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sat, 15 Jan 2022 21:07:07 +0800</lastBuildDate><atom:link href="https://blog.yunwuhai.com/tags/git/index.xml" rel="self" type="application/rss+xml"/><item><title>Git笔记</title><link>https://blog.yunwuhai.com/posts/%E5%B7%A5%E5%85%B7%E4%B8%8E%E7%8E%AF%E5%A2%83/git%E7%AC%94%E8%AE%B0/</link><pubDate>Sat, 15 Jan 2022 21:07:07 +0800</pubDate><guid>https://blog.yunwuhai.com/posts/%E5%B7%A5%E5%85%B7%E4%B8%8E%E7%8E%AF%E5%A2%83/git%E7%AC%94%E8%AE%B0/</guid><description>&lt;img src="https://blog.yunwuhai.com/posts/%E5%B7%A5%E5%85%B7%E4%B8%8E%E7%8E%AF%E5%A2%83/git%E7%AC%94%E8%AE%B0/cover.jpg" alt="Featured image of post Git笔记" /&gt;&lt;p&gt;&lt;em&gt;本文是基于&lt;a class="link" href="https://www.liaoxuefeng.com/wiki/896043488029600" target="_blank" rel="noopener"&#10; &gt;廖雪峰大佬的Git教程&lt;/a&gt;进行的记忆笔记，主要目的是用于快速回忆和精炼Git的一些常用命令，同时补充结合一些网络上的其它关于git的知识，本笔记不适合直接用来零基础学习，如果需要可以通过前面的链接跳转至廖雪峰的教程。本笔记可能存在疏漏，如有问题欢迎指正。&lt;/em&gt;&lt;/p&gt;&#10;&lt;!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} --&gt;&#10;&lt;!-- code_chunk_output --&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%ae%89%e8%a3%85" &gt;安装&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%bb%93%e5%ba%93%e7%ae%a1%e7%90%86repository" &gt;仓库管理（repository）&lt;/a&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%88%9b%e5%bb%ba%e4%bb%93%e5%ba%93" &gt;创建仓库&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%85%8b%e9%9a%86%e4%bb%93%e5%ba%93" &gt;克隆仓库&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6" &gt;版本控制&lt;/a&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e7%bc%93%e5%ad%98%e4%bf%ae%e6%94%b9" &gt;缓存修改&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%8f%90%e4%ba%a4%e4%bf%ae%e6%94%b9" &gt;提交修改&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%9f%a5%e7%9c%8b%e7%8a%b6%e6%80%81" &gt;查看状态&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%86%85%e5%ae%b9%e6%af%94%e8%be%83" &gt;内容比较&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e7%89%88%e6%9c%ac%e6%97%a5%e5%bf%97" &gt;版本日志&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%92%a4%e9%94%80%e4%bf%ae%e6%94%b9" &gt;撤销修改&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%88%a0%e9%99%a4%e6%96%87%e4%bb%b6" &gt;删除文件&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e7%89%88%e6%9c%ac%e5%9b%9e%e9%80%80" &gt;版本回退&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e8%bf%9c%e7%a8%8b%e6%93%8d%e4%bd%9c" &gt;远程操作&lt;/a&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%b7%bb%e5%8a%a0%e5%85%b3%e8%81%94" &gt;添加关联&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%9f%a5%e7%9c%8b%e5%85%b3%e8%81%94" &gt;查看关联&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%8f%96%e6%b6%88%e5%85%b3%e8%81%94" &gt;取消关联&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%b8%8a%e4%bc%a0%e4%bb%a3%e7%a0%81" &gt;上传代码&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%b8%8b%e8%bd%bd%e4%bb%a3%e7%a0%81" &gt;下载代码&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%88%86%e6%94%af%e7%ae%a1%e7%90%86" &gt;分支管理&lt;/a&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e8%bf%9e%e6%8e%a5%e5%88%86%e6%94%af" &gt;连接分支&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%88%9b%e5%bb%ba%e5%88%86%e6%94%af" &gt;创建分支&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%88%87%e6%8d%a2%e5%88%86%e6%94%af" &gt;切换分支&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%90%88%e5%b9%b6%e5%88%86%e6%94%af" &gt;合并分支&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%88%a0%e9%99%a4%e5%88%86%e6%94%af" &gt;删除分支&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%9f%a5%e7%9c%8b%e5%88%86%e6%94%af" &gt;查看分支&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e7%8e%b0%e5%9c%ba%e7%ae%a1%e7%90%86" &gt;现场管理&lt;/a&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e4%bf%9d%e5%ad%98%e7%8e%b0%e5%9c%ba" &gt;保存现场&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%9f%a5%e7%9c%8b%e7%8e%b0%e5%9c%ba" &gt;查看现场&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%81%a2%e5%a4%8d%e7%8e%b0%e5%9c%ba" &gt;恢复现场&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%88%a0%e9%99%a4%e7%8e%b0%e5%9c%ba" &gt;删除现场&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e8%8e%b7%e5%8f%96%e4%bf%ae%e6%94%b9" &gt;获取修改&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%a0%87%e7%ad%be%e7%ae%a1%e7%90%86" &gt;标签管理&lt;/a&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%b7%bb%e5%8a%a0%e6%a0%87%e7%ad%be" &gt;添加标签&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%9f%a5%e7%9c%8b%e6%a0%87%e7%ad%be" &gt;查看标签&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e5%88%a0%e9%99%a4%e6%a0%87%e7%ad%be" &gt;删除标签&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a class="link" href="#%e6%8e%a8%e9%80%81%e6%a0%87%e7%ad%be" &gt;推送标签&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;!-- /code_chunk_output --&gt;&#10;&lt;h2 id="安装"&gt;&lt;a href="#%e5%ae%89%e8%a3%85" class="header-anchor"&gt;&lt;/a&gt;安装&#10;&lt;/h2&gt;&lt;p&gt;Linux直接用apt安装，Windows官网下载安装，Mac用Xcode安装，安装完毕后在命令行使用如下内容进行设置：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.name &lt;span class="s2"&gt;&amp;#34;Your Name&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.email &lt;span class="s2"&gt;&amp;#34;email@example.com&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;若要使用Github或Gitee等远程仓库，其初始化过程请在往上自行搜索。&lt;/p&gt;&#10;&lt;h2 id="仓库管理repository"&gt;&lt;a href="#%e4%bb%93%e5%ba%93%e7%ae%a1%e7%90%86repository" class="header-anchor"&gt;&lt;/a&gt;仓库管理（repository）&#10;&lt;/h2&gt;&lt;h3 id="创建仓库"&gt;&lt;a href="#%e5%88%9b%e5%bb%ba%e4%bb%93%e5%ba%93" class="header-anchor"&gt;&lt;/a&gt;创建仓库&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git init&lt;/code&gt;：将一个文件夹初始化为git仓库，可以在命令行中进入该文件夹并使用此命令。&lt;/p&gt;&#10;&lt;h3 id="克隆仓库"&gt;&lt;a href="#%e5%85%8b%e9%9a%86%e4%bb%93%e5%ba%93" class="header-anchor"&gt;&lt;/a&gt;克隆仓库&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git clone &amp;lt;URL&amp;gt; &amp;lt;name&amp;gt;&lt;/code&gt;：将远程仓库拷贝到自己电脑上，其中&lt;code&gt;&amp;lt;URL&amp;gt;&lt;/code&gt;为远程仓库地址，&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;为赋值后对该项目进行重命名（文件夹的名字）。&lt;/p&gt;&#10;&lt;h2 id="版本控制"&gt;&lt;a href="#%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6" class="header-anchor"&gt;&lt;/a&gt;版本控制&#10;&lt;/h2&gt;&lt;h3 id="缓存修改"&gt;&lt;a href="#%e7%bc%93%e5%ad%98%e4%bf%ae%e6%94%b9" class="header-anchor"&gt;&lt;/a&gt;缓存修改&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git add &amp;lt;file&amp;gt;&lt;/code&gt;：将工作区修改过的文件存入缓存区，其中&lt;code&gt;&amp;lt;file&amp;gt;&lt;/code&gt;为需要缓存的文件，可同时添加多个文件，也可以添加文件夹，若输入&lt;code&gt;git add .&lt;/code&gt;则将该路径下所有的内容全部添加。&lt;/p&gt;&#10;&lt;h3 id="提交修改"&gt;&lt;a href="#%e6%8f%90%e4%ba%a4%e4%bf%ae%e6%94%b9" class="header-anchor"&gt;&lt;/a&gt;提交修改&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git commit &amp;lt;file&amp;gt; -m &amp;lt;message&amp;gt;&lt;/code&gt;：将缓存区的内容提交至本地仓库，其中&lt;code&gt;&amp;lt;file&amp;gt;&lt;/code&gt;为需要提交的文件，可多个或文件夹，若不填写则全部提交。&lt;code&gt;-m &amp;lt;message&amp;gt;&lt;/code&gt;为添加注释内容，如果在其中添加&lt;code&gt;-a&lt;/code&gt;指令，如&lt;code&gt;git commit -am &amp;lt;message&amp;gt;&lt;/code&gt;，则可以跳过&lt;code&gt;add&lt;/code&gt;步骤，直接工作区内容提交到本地仓库中。同时每次commit也相当于提交了一个新的版本。&lt;/p&gt;&#10;&lt;h3 id="查看状态"&gt;&lt;a href="#%e6%9f%a5%e7%9c%8b%e7%8a%b6%e6%80%81" class="header-anchor"&gt;&lt;/a&gt;查看状态&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git status&lt;/code&gt;：查看当前仓库的状态，例如有无未缓存或未提交之类的信息。&lt;/p&gt;&#10;&lt;h3 id="内容比较"&gt;&lt;a href="#%e5%86%85%e5%ae%b9%e6%af%94%e8%be%83" class="header-anchor"&gt;&lt;/a&gt;内容比较&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git diff&lt;/code&gt;：比较工作区和暂存区的差异，可找到例如未缓存但已修改的内容。添加&lt;code&gt;--cached&lt;/code&gt;参数则比较暂存区与上一次提交之间的差异，其它参数可在网上查询。&lt;/p&gt;&#10;&lt;h3 id="版本日志"&gt;&lt;a href="#%e7%89%88%e6%9c%ac%e6%97%a5%e5%bf%97" class="header-anchor"&gt;&lt;/a&gt;版本日志&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git log&lt;/code&gt;：查询过去的版本，包括日期、作者、版本号等信息，添加&lt;code&gt;--pretty=oneline&lt;/code&gt;可以精简上述信息至只有版本号和你commit时添加的注释。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;git reflog&lt;/code&gt;：查询未来的版本，即你曾经回退过版本，现在想取消回退，可以通过这个命令进行查询。&lt;/p&gt;&#10;&lt;h3 id="撤销修改"&gt;&lt;a href="#%e6%92%a4%e9%94%80%e4%bf%ae%e6%94%b9" class="header-anchor"&gt;&lt;/a&gt;撤销修改&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git checkout -- &amp;lt;file&amp;gt;&lt;/code&gt;：将工作区的文件恢复为之前暂存区存储的内容。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;git reset HEAD &amp;lt;file&amp;gt;&lt;/code&gt;：将暂存区某文件的内容恢复为之前仓库存储的内容。&lt;/p&gt;&#10;&lt;h3 id="删除文件"&gt;&lt;a href="#%e5%88%a0%e9%99%a4%e6%96%87%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;删除文件&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git rm &amp;lt;file&amp;gt;&lt;/code&gt;：将文件从暂存区和工作区删除，若未使用该语句而直接将文件删除，则暂存区仍然会保留该文件，且在查询状态时告知你删除了文件，此时可以使用撤销修改进行恢复。若删除之前进行过修改，缓存至了暂存区且尚未提交，则此命令需要使用&lt;code&gt;-f&lt;/code&gt;参数才可进行强制删除。若仅想删除暂存区内的修改但保留工作区的文件，则需要添加&lt;code&gt;--cached&lt;/code&gt;参数。&lt;/p&gt;&#10;&lt;h3 id="版本回退"&gt;&lt;a href="#%e7%89%88%e6%9c%ac%e5%9b%9e%e9%80%80" class="header-anchor"&gt;&lt;/a&gt;版本回退&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git reset &amp;lt;--soft|--mix|--hard&amp;gt; &amp;lt;commit_id&amp;gt;&lt;/code&gt;：将仓库重置至另外某个版本的状态。&lt;/p&gt;&#10;&lt;p&gt;其中&lt;code&gt;&amp;lt;--soft|--mix|--hard&amp;gt;&lt;/code&gt;为三选一参数：&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;--soft&lt;/code&gt;为变更&lt;code&gt;HEAD&lt;/code&gt;所指向的版本（&lt;code&gt;HEAD&lt;/code&gt;版本即为分支顶端的别名）。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;--hard&lt;/code&gt;为除了变更&lt;code&gt;HEAD&lt;/code&gt;所指向的版本外，还会把工程的一切都变成该历史版本的样子，该操作有丢失掉当前所有修改的风险。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;--mix&lt;/code&gt;为除了变更&lt;code&gt;HEAD&lt;/code&gt;所指向的版本外，还会将暂存区重置以匹配&lt;code&gt;HEAD&lt;/code&gt;，但工作区不会改变。&lt;/p&gt;&#10;&lt;p&gt;其中&lt;code&gt;&amp;lt;commit_id&amp;gt;&lt;/code&gt;为版本号，通过版本日志可以查询，若设置为&lt;code&gt;HEAD&lt;/code&gt;则为当前版本，若使用&lt;code&gt;HEAD^&lt;/code&gt;可退回上一个版本，使用&lt;code&gt;HEAD^^&lt;/code&gt;或&lt;code&gt;HEAD^2&lt;/code&gt;可退回上上个版本，通过增加&lt;code&gt;^&lt;/code&gt;的数量或增加数字，可退回的层数以此类推增长。&lt;/p&gt;&#10;&lt;h2 id="远程操作"&gt;&lt;a href="#%e8%bf%9c%e7%a8%8b%e6%93%8d%e4%bd%9c" class="header-anchor"&gt;&lt;/a&gt;远程操作&#10;&lt;/h2&gt;&lt;h3 id="添加关联"&gt;&lt;a href="#%e6%b7%bb%e5%8a%a0%e5%85%b3%e8%81%94" class="header-anchor"&gt;&lt;/a&gt;添加关联&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git remote add &amp;lt;name&amp;gt; &amp;lt;URL&amp;gt;&lt;/code&gt;：将本地已有仓库与一个远程仓库进行关联，其中&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;为对该远程仓库取得别名，常用origin作为该别名，&lt;code&gt;&amp;lt;URL&amp;gt;&lt;/code&gt;为远程仓库的地址。&lt;/p&gt;&#10;&lt;h3 id="查看关联"&gt;&lt;a href="#%e6%9f%a5%e7%9c%8b%e5%85%b3%e8%81%94" class="header-anchor"&gt;&lt;/a&gt;查看关联&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git remote -v&lt;/code&gt;：查看当前全部已关联库。&lt;/p&gt;&#10;&lt;h3 id="取消关联"&gt;&lt;a href="#%e5%8f%96%e6%b6%88%e5%85%b3%e8%81%94" class="header-anchor"&gt;&lt;/a&gt;取消关联&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git remote rm &amp;lt;name&amp;gt;&lt;/code&gt;：删除某个关联的&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;分支。&lt;/p&gt;&#10;&lt;h3 id="上传代码"&gt;&lt;a href="#%e4%b8%8a%e4%bc%a0%e4%bb%a3%e7%a0%81" class="header-anchor"&gt;&lt;/a&gt;上传代码&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git push &amp;lt;name&amp;gt; &amp;lt;branch&amp;gt;&lt;/code&gt;：将本地仓库名为&lt;code&gt;&amp;lt;branch&amp;gt;&lt;/code&gt;的分支上传至远程&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;仓库并合并，若两边分支名不同则应使用&lt;code&gt;&amp;lt;brach_local&amp;gt;:&amp;lt;branch_origin&amp;gt;&lt;/code&gt;分别填写上两边的分支名然后上传，若两边版本差异则需要添加&lt;code&gt;--force&lt;/code&gt;参数强制推送，若想未来简化&lt;code&gt;git push&lt;/code&gt;操作，可在&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;前添加&lt;code&gt;-u&lt;/code&gt;参数，未来&lt;code&gt;git push&lt;/code&gt;即可直接代替&lt;code&gt;git push &amp;lt;name&amp;gt; &amp;lt;branch&amp;gt;&lt;/code&gt;指令。&lt;/p&gt;&#10;&lt;h3 id="下载代码"&gt;&lt;a href="#%e4%b8%8b%e8%bd%bd%e4%bb%a3%e7%a0%81" class="header-anchor"&gt;&lt;/a&gt;下载代码&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git pull &amp;lt;name&amp;gt; &amp;lt;branch&amp;gt;&lt;/code&gt;：将远程&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;主机&lt;code&gt;&amp;lt;branch&amp;gt;&lt;/code&gt;分支的代码合并到本地，也可使用&lt;code&gt;&amp;lt;branch_origin&amp;gt;:&amp;lt;branch_local&amp;gt;&lt;/code&gt;来确定分支，当团队之间合作代码push推送失败时，可以使用&lt;code&gt;git pull&lt;/code&gt;来获取最新的提交，然后本地修改合并后再推送。注意，pull操作会直接合并，如果在合并前需要对照之类的操作应该使用fetch。&lt;/p&gt;&#10;&lt;h2 id="分支管理"&gt;&lt;a href="#%e5%88%86%e6%94%af%e7%ae%a1%e7%90%86" class="header-anchor"&gt;&lt;/a&gt;分支管理&#10;&lt;/h2&gt;&lt;h3 id="连接分支"&gt;&lt;a href="#%e8%bf%9e%e6%8e%a5%e5%88%86%e6%94%af" class="header-anchor"&gt;&lt;/a&gt;连接分支&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git branch --set-upstream-to &amp;lt;branch&amp;gt; &amp;lt;name&amp;gt;/&amp;lt;branch&amp;gt;&lt;/code&gt;：如果pull失败并提示&lt;code&gt;no tracking information&lt;/code&gt;，则说明本地分支和远程分支没有连接，使用上述方法方法即可完成连接。&lt;/p&gt;&#10;&lt;h3 id="创建分支"&gt;&lt;a href="#%e5%88%9b%e5%bb%ba%e5%88%86%e6%94%af" class="header-anchor"&gt;&lt;/a&gt;创建分支&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git branch &amp;lt;name&amp;gt;&lt;/code&gt;：创建一个名为&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;的分支，创建分支并不会对之前分支的工作区产生改变。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;git switch -c &amp;lt;branch&amp;gt; &amp;lt;name&amp;gt;/&amp;lt;branch&amp;gt;&lt;/code&gt;：跟踪一个远端&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;主机的&lt;code&gt;&amp;lt;branch&amp;gt;&lt;/code&gt;分支到本地。&lt;/p&gt;&#10;&lt;h3 id="切换分支"&gt;&lt;a href="#%e5%88%87%e6%8d%a2%e5%88%86%e6%94%af" class="header-anchor"&gt;&lt;/a&gt;切换分支&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git checkout &amp;lt;name&amp;gt;&lt;/code&gt;：切换到&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;分支，若中间加上&lt;code&gt;-b&lt;/code&gt;参数，则可以创建并切换。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;git switch &amp;lt;name&amp;gt;&lt;/code&gt;：新版git提供的新指令，用于替代checkout，切换到&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;分支，若中间加上&lt;code&gt;-c&lt;/code&gt;参数，则可以创建并切换。&lt;/p&gt;&#10;&lt;h3 id="合并分支"&gt;&lt;a href="#%e5%90%88%e5%b9%b6%e5%88%86%e6%94%af" class="header-anchor"&gt;&lt;/a&gt;合并分支&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git merge &amp;lt;name&amp;gt;&lt;/code&gt;：将&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;分支合并到当前分支，如果合并产生了冲突，则需要手动合并冲突（即手动将文件编辑为我们想要的内容，git将在文件合并冲突位置处添加符号标注）。合并时如果加上&lt;code&gt;--no-ff&lt;/code&gt;参数即可使用普通模式合并，这样合并后的历史有分支，可以看出曾经做过合并，而如果不加则看不出来曾经做个合并。&lt;/p&gt;&#10;&lt;h3 id="删除分支"&gt;&lt;a href="#%e5%88%a0%e9%99%a4%e5%88%86%e6%94%af" class="header-anchor"&gt;&lt;/a&gt;删除分支&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git push &amp;lt;name&amp;gt; --delete &amp;lt;branch&amp;gt;&lt;/code&gt;：删除远端&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;仓库的&lt;code&gt;&amp;lt;branch&amp;gt;&lt;/code&gt;分支。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;git branch -d &amp;lt;branch&amp;gt;&lt;/code&gt;：删除本地&lt;code&gt;&amp;lt;branch&amp;gt;&lt;/code&gt;分支，在删除前需要先切换到其它分支，若d改为大写D，则为强制删除。&lt;/p&gt;&#10;&lt;h3 id="查看分支"&gt;&lt;a href="#%e6%9f%a5%e7%9c%8b%e5%88%86%e6%94%af" class="header-anchor"&gt;&lt;/a&gt;查看分支&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git branch&lt;/code&gt;：查看本地分支。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;git branch -r&lt;/code&gt;：查看远端分支。&lt;/p&gt;&#10;&lt;h2 id="现场管理"&gt;&lt;a href="#%e7%8e%b0%e5%9c%ba%e7%ae%a1%e7%90%86" class="header-anchor"&gt;&lt;/a&gt;现场管理&#10;&lt;/h2&gt;&lt;h3 id="保存现场"&gt;&lt;a href="#%e4%bf%9d%e5%ad%98%e7%8e%b0%e5%9c%ba" class="header-anchor"&gt;&lt;/a&gt;保存现场&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git stash&lt;/code&gt;：当急需继续对某另一分支进行操作而当前任务尚未结束无法提交，可以先保存现场，去处理完其它任务后再回来重新工作，保存现场后当前工作区将会恢复为上一次commit时的状态，直到恢复现场。&lt;/p&gt;&#10;&lt;h3 id="查看现场"&gt;&lt;a href="#%e6%9f%a5%e7%9c%8b%e7%8e%b0%e5%9c%ba" class="header-anchor"&gt;&lt;/a&gt;查看现场&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git stash list&lt;/code&gt;：查看现在已保存的现场，每个保存的现场均会拥有一个id进行标识。&lt;/p&gt;&#10;&lt;h3 id="恢复现场"&gt;&lt;a href="#%e6%81%a2%e5%a4%8d%e7%8e%b0%e5%9c%ba" class="header-anchor"&gt;&lt;/a&gt;恢复现场&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git stash pop&lt;/code&gt;：恢复现场并删除保存记录，如果产生冲突，文件会出现和合并时类似的改变。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;git stash apply &amp;lt;id&amp;gt;&lt;/code&gt;：恢复id为&lt;code&gt;&amp;lt;id&amp;gt;&lt;/code&gt;的现场但不会删除记录，需要手动删除&lt;/p&gt;&#10;&lt;h3 id="删除现场"&gt;&lt;a href="#%e5%88%a0%e9%99%a4%e7%8e%b0%e5%9c%ba" class="header-anchor"&gt;&lt;/a&gt;删除现场&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git stash drop &amp;lt;id&amp;gt;&lt;/code&gt;：删除id为&lt;code&gt;&amp;lt;id&amp;gt;&lt;/code&gt;的现场。&lt;/p&gt;&#10;&lt;h3 id="获取修改"&gt;&lt;a href="#%e8%8e%b7%e5%8f%96%e4%bf%ae%e6%94%b9" class="header-anchor"&gt;&lt;/a&gt;获取修改&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git cherry-pick &amp;lt;commit_id&amp;gt;&lt;/code&gt;：从其它地方获取更改，但不同于merge，其获取的更改是以commit为单位而非分支，所以&lt;code&gt;&amp;lt;commit_id&amp;gt;&lt;/code&gt;即为所交commit的id，可以在对应分支通过log查询。&lt;/p&gt;&#10;&lt;h2 id="标签管理"&gt;&lt;a href="#%e6%a0%87%e7%ad%be%e7%ae%a1%e7%90%86" class="header-anchor"&gt;&lt;/a&gt;标签管理&#10;&lt;/h2&gt;&lt;h3 id="添加标签"&gt;&lt;a href="#%e6%b7%bb%e5%8a%a0%e6%a0%87%e7%ad%be" class="header-anchor"&gt;&lt;/a&gt;添加标签&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git tag &amp;lt;TAG&amp;gt;&lt;/code&gt;：为一个commit打上标签，&lt;code&gt;&amp;lt;TAG&amp;gt;&lt;/code&gt;为标签内容。通过&lt;code&gt;git tag -a &amp;lt;TAG&amp;gt; -m &amp;lt;message&amp;gt; &amp;lt;commit_id&amp;gt;&lt;/code&gt;可以为id为&lt;code&gt;&amp;lt;commit_id&amp;gt;&lt;/code&gt;的提交打上标签&lt;code&gt;&amp;lt;TAG&amp;gt;&lt;/code&gt;并添加说明文字&lt;code&gt;&amp;lt;message&amp;gt;&lt;/code&gt;。&lt;/p&gt;&#10;&lt;h3 id="查看标签"&gt;&lt;a href="#%e6%9f%a5%e7%9c%8b%e6%a0%87%e7%ad%be" class="header-anchor"&gt;&lt;/a&gt;查看标签&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git tag&lt;/code&gt;：可以查看历史打过的标签。&lt;/p&gt;&#10;&lt;h3 id="删除标签"&gt;&lt;a href="#%e5%88%a0%e9%99%a4%e6%a0%87%e7%ad%be" class="header-anchor"&gt;&lt;/a&gt;删除标签&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git tag -d &amp;lt;TAG&amp;gt;&lt;/code&gt;：删除名为&lt;code&gt;&amp;lt;TAG&amp;gt;&lt;/code&gt;的标签。&lt;/p&gt;&#10;&lt;h3 id="推送标签"&gt;&lt;a href="#%e6%8e%a8%e9%80%81%e6%a0%87%e7%ad%be" class="header-anchor"&gt;&lt;/a&gt;推送标签&#10;&lt;/h3&gt;&lt;p&gt;&lt;code&gt;git push &amp;lt;name&amp;gt; &amp;lt;TAG&amp;gt;&lt;/code&gt;：标签本身不会自动上传到远端服务器，通过此指令可以将&lt;code&gt;&amp;lt;TAG&amp;gt;&lt;/code&gt;推送到远端&lt;code&gt;&amp;lt;name&amp;gt;&lt;/code&gt;主机上。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;git push &amp;lt;name&amp;gt; :refs/tags/&amp;lt;TAG&amp;gt;&lt;/code&gt;：通过本指令可以将已上传至远端的标签删除。&lt;/p&gt;&#10;</description></item></channel></rss>