<?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>Git on Rancho&#39;s Notes</title>
    <link>https://fan-pengfei.top/tags/git/</link>
    <description>Recent content in Git on Rancho&#39;s Notes</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 22 Feb 2023 07:28:48 +0000</lastBuildDate>
    <atom:link href="https://fan-pengfei.top/tags/git/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>git中的rebase用法小结</title>
      <link>https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/</link>
      <pubDate>Wed, 22 Feb 2023 07:28:48 +0000</pubDate>
      <guid>https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;今天用到了git rebase命令来进行合并两次提交，顺带梳理下rebase命令的用法；
参考：&lt;a href=&#34;https://www.jianshu.com/p/4a8f4af4e803&#34;&gt;https://www.jianshu.com/p/4a8f4af4e803&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;rebase在git中是一个非常有魅力的命令，使用得当会极大提高自己的工作效率；相反，如果乱用，会给团队中其他人带来麻烦。它的作用简要概括为：可以对某一段线性提交历史进行编辑、删除、复制、粘贴；因此，合理使用rebase命令可以使我们的提交历史干净、简洁！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;前提：不要通过rebase对任何已经提交到公共仓库中的commit进行修改（你自己一个人玩的分支除外）；&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;一合并多个commit为一个完整commit&#34;&gt;一、合并多个commit为一个完整commit&lt;/h3&gt;
&lt;p&gt;当我们在本地仓库中提交了多次，在我们把本地提交push到公共仓库中之前，为了让提交记录更简洁明了，我们希望把如下分支B、C、D三个提交记录合并为一个完整的提交，然后再push到公共仓库。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;0ba5c5a59eac26db62f1de57ccd6040&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/img-1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;现在我们在测试分支上添加了四次提交，我们的目标是把最后三个提交合并为一个提交：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;70c9817cfaf9fe0b38bf3bbb97197bd&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/img-2.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;这里我们使用命令:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git rebase -i  &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;startpoint&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;endpoint&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;其中&lt;code&gt;-i&lt;/code&gt;的意思是&lt;code&gt;--interactive&lt;/code&gt;，即弹出交互式的界面让用户编辑完成合并操作，&lt;code&gt;[startpoint]&lt;/code&gt;  &lt;code&gt;[endpoint]&lt;/code&gt;则指定了一个编辑区间，如果不指定&lt;code&gt;[endpoint]&lt;/code&gt;，则该区间的终点默认是当前分支&lt;code&gt;HEAD&lt;/code&gt;所指向的&lt;code&gt;commit&lt;/code&gt;(注：该区间指定的是一个前开后闭的区间)。
在查看到了log日志后，我们运行以下命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git rebase -i 36224db
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;或:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git rebase -i HEAD~3
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后我们会看到如下界面:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;326677b29707761988e3d89c2a5ef58&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/img-3.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;上面未被注释的部分列出的是我们本次rebase操作包含的所有提交，下面注释部分是git为我们提供的命令说明。每一个commit id 前面的&lt;code&gt;pick&lt;/code&gt;表示指令类型，git 为我们提供了以下几个命令:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;pick：保留该commit（缩写:p）
reword：保留该commit，但我需要修改该commit的注释（缩写:r）
edit：保留该commit, 但我要停下来修改该提交(不仅仅修改注释)（缩写:e）
squash：将该commit和前一个commit合并（缩写:s）
fixup：将该commit和前一个commit合并，但我不要保留该提交的注释信息（缩写:f）
exec：执行shell命令（缩写:x）
drop：我要丢弃该commit（缩写:d）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;根据我们的需求，我们将commit内容编辑如下:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;5939a788fc6c0730435233001dc4cf4&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/img-4.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;然后是注释修改界面:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;d1cc8502accee35249a4a248663085c&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/img-5.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;编辑完保存即可完成commit的合并了：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;3a0723ad06ce0cff218b931b1a0b422&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/img-6.png&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;二将某一段commit粘贴到另一个分支上&#34;&gt;二、将某一段commit粘贴到另一个分支上&lt;/h3&gt;
&lt;p&gt;当我们项目中存在多个分支，有时候我们需要将某一个分支中的一段提交同时应用到其他分支中，就像下图：&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;d4b3c401612bba5cd4cac2efb15450c&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/img-7.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;我们希望将develop分支中的C~E部分复制到master分支中，这时我们就可以通过rebase命令来实现（如果只是复制某一两个提交到其他分支，建议使用更简单的命令:&lt;code&gt;git cherry-pick&lt;/code&gt;）。&lt;/p&gt;
&lt;p&gt;在实际模拟中，我们创建了master和develop两个分支:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;master分支:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;55dda3c4a0bf2cd83d03b5714ec9107&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/img-8.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;develop分支:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;c2a745be2db81114facc5c699da5170&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E4%B8%AD%E7%9A%84rebase%E7%94%A8%E6%B3%95%E5%B0%8F%E7%BB%93/img-9.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;我们使用命令的形式为:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git rebase &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;startpoint&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;endpoint&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; --onto &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;branchName&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;其中，&lt;code&gt;[startpoint]&lt;/code&gt;  &lt;code&gt;[endpoint]&lt;/code&gt;仍然和上一个命令一样指定了一个编辑区间(前开后闭)，&lt;code&gt;--onto&lt;/code&gt;的意思是要将该指定的提交复制到哪个分支上。&lt;/p&gt;
&lt;p&gt;所以，在找到C(90bc0045b)和E(5de0da9f2)的提交id后，我们运行以下命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git  rebase 90bc0045b^ 5de0da9f2 --onto master
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注:因为&lt;code&gt;[startpoint]&lt;/code&gt;  &lt;code&gt;[endpoint]&lt;/code&gt;指定的是一个前开后闭的区间，为了让这个区间包含C提交，我们将区间起始点向后退了一步。&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何写好CommitMessage</title>
      <link>https://fan-pengfei.top/posts/%E5%A6%82%E4%BD%95%E5%86%99%E5%A5%BDcommitmessage/</link>
      <pubDate>Sat, 18 Feb 2023 14:06:23 +0000</pubDate>
      <guid>https://fan-pengfei.top/posts/%E5%A6%82%E4%BD%95%E5%86%99%E5%A5%BDcommitmessage/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;翻译的一篇文章；
&lt;strong&gt;Commit messages matter. Here’s how to write them well.&lt;/strong&gt;
提交的备注信息很重要，这里将教给你如何写好它们.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt=&#34;How to Write a Git Commit Message&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/%E5%A6%82%E4%BD%95%E5%86%99%E5%A5%BDcommitmessage/img-1.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;简介为什么好的提交信息很重要&#34;&gt;简介：为什么好的提交信息很重要&lt;/h2&gt;
&lt;p&gt;如果你随机浏览任何一个 Git 存储库的日志，你可能会发现它的提交消息或多或少是一团糟。&lt;/p&gt;
&lt;p&gt;例如，下面是我早期致力于 Spring 时的提交信息：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git log --oneline -5 --author cbeams --before &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Fri Mar 26 2009&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;e5f4b49 Re-adding ConfigurationPostProcessorTests after its brief removal in r814. @Ignore-ing the testCglibClassesAreLoadedJustInTimeForEnhancement&lt;span style=&#34;color:#f92672&#34;&gt;()&lt;/span&gt; method as it turns out this was one of the culprits in the recent build breakage. The classloader hacking causes subtle downstream effects, breaking unrelated tests. The test method is still useful, but should only be run on a manual basis to ensure CGLIB is not prematurely classloaded, and should not be run as part of the automated build.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2db0f12 fixed two build-breaking issues: + reverted ClassMetadataReadingVisitor to revision &lt;span style=&#34;color:#ae81ff&#34;&gt;794&lt;/span&gt; + eliminated ConfigurationPostProcessorTests &lt;span style=&#34;color:#66d9ef&#34;&gt;until&lt;/span&gt; further investigation determines why it causes downstream tests to fail &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;such as the seemingly unrelated ClassPathXmlApplicationContextTests&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;147709f Tweaks to package-info.java files
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;22b25e0 Consolidated Util and MutableAnnotationUtils classes into existing AsmUtils
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;7f96f57 polishing
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;啊哈，然后将其与来自同一存储库的这些最近的提交进行比较：&lt;/p&gt;</description>
    </item>
    <item>
      <title>git常用命令</title>
      <link>https://fan-pengfei.top/posts/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</link>
      <pubDate>Wed, 28 Sep 2022 13:12:41 +0000</pubDate>
      <guid>https://fan-pengfei.top/posts/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;最近在做FOC项目的时候，用到了GIT中的分支功能，因而再复习一下GIT的用法，在此记录一下GIT常用命令；&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;为表简洁，我就直接给出具体的命令以及简短的注释和自己对此的理解；&lt;/strong&gt;&lt;/p&gt;
&lt;h4 id=&#34;1git-init&#34;&gt;1、git init&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;用于初始化git仓库；&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;2git-add-文件名&#34;&gt;2、git add +文件名&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;将指定工作区文件提交到git暂存区；
-A，是添加文件夹内的所有文件到暂存区；
每次提交，都要&lt;code&gt;git add&lt;/code&gt;加入到暂存区，然后再commit提交；
第一次修改 -&amp;gt; &lt;code&gt;git add&lt;/code&gt; -&amp;gt; 第二次修改 -&amp;gt; &lt;code&gt;git add&lt;/code&gt; -&amp;gt; &lt;code&gt;git commit&lt;/code&gt;；
commit提交的是git add 加入的修改的内容，而不是文件当前的内容；&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;3git-commit--m-本次提交的说明&#34;&gt;3、git commit -m +“本次提交的说明”&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;将暂存区文件提交到仓库；
-m，后边是关于本次提交的说明；
该命令执行成功后会显示提交的内容：
例如：
&lt;code&gt;1 file changed&lt;/code&gt;：1个文件被改动；
&lt;code&gt;2 insertions&lt;/code&gt;：插入了两行内容；&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;4git-status&#34;&gt;4、git status&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;显示当前仓库的状态（被修改的文件是否被提交）；
例如某个文件被修改却未被提交；
包括工作区的文件修改情况和暂存区的文件修改情况；&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;5git-diff-文件名&#34;&gt;5、git diff +文件名&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;查看文件修改内容；
常看尚未被提交的文件做了什么修改；
&lt;strong&gt;是工作区和暂存区文件之间的差别；&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;6git-log&#34;&gt;6、git log&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;显示从近到远的提交日志；
&lt;img alt=&#34;efb8ab5c515470ebd88aece20684127&#34; loading=&#34;lazy&#34; src=&#34;https://fan-pengfei.top/posts/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/img-1.png&#34;&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;7git-reset-hard-head&#34;&gt;7、git reset —hard HEAD^&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;回退到上一版本；
HEAD
当前版本
HEAD^
上一版本
HEAD^^
上上一版本&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&#34;8git-reset-hard-1094a&#34;&gt;8、git reset —hard 1094a&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;回退或者前进到指定版本；
—hard，后边的是版本号前几位；&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git学习记录</title>
      <link>https://fan-pengfei.top/posts/git%E5%AD%A6%E4%B9%A0%E8%AE%B0%E5%BD%95/</link>
      <pubDate>Wed, 18 Aug 2021 04:29:14 +0000</pubDate>
      <guid>https://fan-pengfei.top/posts/git%E5%AD%A6%E4%B9%A0%E8%AE%B0%E5%BD%95/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Git相关的知识；
参考链接：&lt;a href=&#34;https://zhuanlan.zhihu.com/p/94008510&#34;&gt;https://zhuanlan.zhihu.com/p/94008510&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;git-常用命令&#34;&gt;Git 常用命令&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;初次使用时，在命令行中配置本地仓库的账号和邮箱：&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git config --global user.name &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;username&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git config --global user.email &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;useremail&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;初始化Git,使用 cd 命令导航到要在终端中设置版本控制的目录，现在你可以像这样初始化 Git 存储库：&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;要开始对现有文件进行版本控制，你应该先跟踪这些文件并进行初始提交。要做到这一点，你首先需要将文件添加到 Git 中，并将它们附加到 Git 项目中。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git add
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git commit -m &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;first commit&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;还有一些更高级的方法可以将文件添加到 Git 中，从而使你的工作流程更高效。我们可以执行以下操作，而不是试图查找所有有更改的文件并逐个添加它们：&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 逐个添加文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git add filename
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 添加当前目录中的所有文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git add -A
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 添加当前目录中的所有文件更改&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git add .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 选择要添加的更改（你可以 Y 或 N 完成所有更改）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git add -p
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;远程备份文件（Github）,因此，首先转到 &lt;a href=&#34;https://link.zhihu.com/?target=http%3A//github.com&#34;&gt;http://github.com&lt;/a&gt; 并创建一个存储库。然后，使用存储库的链接将其添加为本地 git 项目的来源，即该代码的存储位置；&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git remote add origin &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;https://github.com/fan-pengfei/bash_learning.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;远程备份代码：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
