<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>常用命令行 on JackyLee&#39;s Blog</title>
    <link>https://jackylee3362.github.io/tags/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C/</link>
    <description>Recent content in 常用命令行 on JackyLee&#39;s Blog</description>
    <image>
      <title>JackyLee&#39;s Blog</title>
      <url>https://jackylee3362.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://jackylee3362.github.io/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 03 Apr 2024 13:53:54 +0800</lastBuildDate>
    <atom:link href="https://jackylee3362.github.io/tags/%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Git 一些比较复杂的使用场景</title>
      <link>https://jackylee3362.github.io/posts/2024/240406-02-git-situation/</link>
      <pubDate>Wed, 03 Apr 2024 13:53:54 +0800</pubDate>
      <guid>https://jackylee3362.github.io/posts/2024/240406-02-git-situation/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;平常使用 &lt;code&gt;git add .&lt;/code&gt; 或者 &lt;code&gt;git push|pull|clone&lt;/code&gt; 等命令，已经无法满足各种奇怪的需求了，&lt;/p&gt;
&lt;p&gt;在使用 Github 的时候，由于对【本地分支】和【远程分支】理解不够深刻，难免会出现各种问题&lt;/p&gt;
&lt;p&gt;所以本文章持续记录使用 Git 时遇到的各种复杂场景&lt;/p&gt;
&lt;h2 id=&#34;1-本地分支相关&#34;&gt;1 本地分支相关&lt;/h2&gt;
&lt;h3 id=&#34;11-签出会覆盖本地修改&#34;&gt;1.1 签出会覆盖本地修改&lt;/h3&gt;
&lt;p&gt;场景描述：&lt;/p&gt;
&lt;p&gt;通常我会在 &lt;code&gt;dev&lt;/code&gt; 分支上操作，
然后细粒度地提交 commit，
上传到 github 上形成一个 pull-request，
然后 &lt;code&gt;main&lt;/code&gt; 再接受 pr，然后合并成一个&lt;/p&gt;
&lt;p&gt;但是有时候会忘记切换分支（比如现在就是），直接在 main 上更改&lt;/p&gt;
&lt;p&gt;在 vscode 的状态栏就会出现 &lt;code&gt;*&lt;/code&gt;，此时想换到 &lt;code&gt;dev&lt;/code&gt; 分支&lt;/p&gt;
&lt;p&gt;直接切换会出现&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;签出会覆盖本地修改&#34; loading=&#34;lazy&#34; src=&#34;https://assets-1302294329.cos.ap-shanghai.myqcloud.com/2026/md/override-local-change.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;该提示下的三个选项分别是什么意思呢？&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;储藏并签出：希望【暂存区】仍然在当前分支，然后切换到另一个分支&lt;/li&gt;
&lt;li&gt;迁移更改：希望将【暂存区】的内容切换到另一个分支，可能要处理冲突问题&lt;/li&gt;
&lt;li&gt;强制签出：（不推荐）直接放弃当前分支（比如 &lt;code&gt;main&lt;/code&gt;）未提交的 &lt;code&gt;commmit&lt;/code&gt;，然后切换为分支 &lt;code&gt;dev&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;所以该场景我们需要的是【迁移更改】&lt;/p&gt;
&lt;h3 id=&#34;12-暂存-apply-和-pop&#34;&gt;1.2 暂存 apply 和 pop&lt;/h3&gt;
&lt;p&gt;什么时候需要【储藏并签出】呢？&lt;/p&gt;
&lt;p&gt;比如当自己在 &lt;code&gt;a-branch&lt;/code&gt; 上写代码，突然有紧急的 bug 需要在 &lt;code&gt;b-branch&lt;/code&gt; 维修，但是 &lt;code&gt;a-branch&lt;/code&gt; 还没到达可以提交的阶段，此时就可以使用【储藏并签出】的功能&lt;/p&gt;
&lt;p&gt;在修改完以后，回到原先的分支，可以看到 stash 的小图标&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
