朱治龙个人博客 - git
type: channel
link: https://blog.zhuzhilong.cn/tag/git/
items: git部分高级用法
items: 30分钟教你入门Git

git部分高级用法
type: item
date: 2019-04-13T04:26:00+00:00
description: Rebase 合并该命令可以让和 merge 命令得到的结果基本是一致的。通常使用 merge 操作将分支上的代码合并到 master 中，分支样子如下所示:使用 rebase 后，会将 develop 上的 commit 按顺序移到 master 的第三个 commit 后面，分支样子如下所示:rebase 对比 merge，优势在于合并后的结果很清晰，只有一条线，劣势在于如果一旦出现冲突，解决冲突很麻烦，可能要解决多个冲突，但是 merge 出现冲突只需要解决一次。使用 rebase 应该在需要被 rebase 的分支上操作，并且该分支是本地分支。如果 develop 分支需要 rebase 到 master 上去，那么应该如下操作## branch develop git rebase master git checkout master ## 用于将 `master` 上的 HEAD 移动到最新的 commit git merge developstashstash 用于临时保存工作目录的改动。开发中可能会遇到代码写一半需要切分支打包的问题，如果这时候你不想 commit 的话，就可以使用该命令。git stash使用该命令可以暂存你的工作目录，后面想恢复工作目录，只需要使用git stash pop这样你之前临时保存的代码又回来了reflogreflog 可以看到 HEAD 的移动记录，假如之前误删了一个分支，可以通过 git reflog 看到移动 HEAD 的哈希值从图中可以看出，HEAD 的最后一次移动行为是 merge 后，接下来分支 new 就被删除了，那么我们可以通过以下命令找回 new 分支git checkout 37d9aca git checkout -b newPS：reflog 记录是有时效性的，只会保存一段时间内的记录。reset如果你想删除刚写的 commit，就可以通过以下命令实现git reset --hard HEAD^但是 reset 的本质并不是删除了 commit，而是重新设置了 HEAD 和它指向的 branch。

30分钟教你入门Git
type: item
date: 2017-08-10T04:46:00+00:00
description: Git近些年的火爆程度非同一般，这个版本控制系统被广泛地用在大型开源项目（比如Linux），不同规模的团队开发，以及独立开发者，甚至学生之中。初学者非常容易被git里的 各种命令、参数 吓得不愿意继续去学。但实际上刚上手的时候，你并不需要了解所有命令的用途。你可以从掌握一些简单、常用又强大的命令开始，然后逐步去学习。这就是我们这篇文章要讲的内容。让我们快开始吧！基本了解Git是一些命令行工具的集合，可以用来跟踪、记录文件的变动，经常用于开源代码。比如你可以进行旧版本恢复、比对、分析、合并等等。这个过程被称之为版本控制。已经有一系列的版本控制系统，比如SVN、Mercurial、Perforce、CVS、Bitkeepe等等。Git是分布式的，这意味着它并不依赖于中心服务器来保存你文件的旧版本。任何一台机器都可以有一个本地版本的控制系统，其实就是一个硬盘上的文件，我们称之为仓库（repository）。如果是多人协作的话，你还需要一个线上仓库，用来同步代码等信息。这就是GitHub、Gitlab、Gittee、BitBucket等网站做的工作。安装Git在你的机器上安装git非常简单：Linux – 打开终端，然后通过包管理安装，在Ubuntu上命令是： sudo apt-get install gitWindows – 推荐使用 git for windows ，它包括了图形工具以及命令行模拟器。OS X – 最简单的方式是使用 homebrew 安装，命令行执行brew install git如果你是新手，推荐使用图形工具 Github desktop、 TortoiseGit 和 Sourcetree 。不过即使使用图形界面的应用，知道一些基本的git命令依然很重要。接下来的内容我们集中在命令行控制上。2.配置Git安装完git，首要任务是做一些简单的配置，最重要的是用户名及邮箱，打开终端，执行以下命令。$ git config --global user.name "My Name" $ git config --global user.email myEmail@example.com配置好这两项，Git就能记录下来是谁做的动作，一切都更有组织性了。3.创建一个新仓库 – git initgit会把所有文件以及历史记录直接记录成一个文件夹保存在你的项目中。创建一个新的仓库，首先要去到项目路径下，执行git init。这时Git会创建一个隐藏的文件夹.git，所有的历史和配置信息都储存在其中。比如我们在桌面创建一个文件夹 git_exercise, 打开终端，输入：$ cd Desktop/git_exercise/ $ git init命令行会出现类似于如下的提示信息Initialized empty Git repository in /home/user/Desktop/git_exercise/.git/这说明我们的仓库已经建立好了，但现在是空的，试着新建一个hello.txt文本文件到这个文件夹里。4.检查状态 – git statusGit status是另一个非常重要的命令，它反馈给我们仓库当前状态的信息：是否为最新代码，有什么更新等等。在我们新建的仓库中执行git status会得到以下内容:$ git status On branch master Initial commit Untracked files: (use "git add ..." to include in what will be committed) hello.txt反馈信息告诉我们，hello.txt尚未跟踪，这是说这个文件是新的，git不知道是应该跟踪它的变动还是直接忽略。为了跟踪我们的新文件，我们需要暂存它。5.暂存 – git addGit有个概念叫“暂存区“，你可以把它看成一块空白的画布，包裹着所有你可能会提交的变动。它一开始是空的，可以通过 git add 命令添加内容，最后使用 git commit 提交（创建一个快照）。这个例子中只有一个文件，让我们先add它：$ git add hello.txt如果需要提交目录下的所有内容，可以这样做：$ git add -A再次使用git status查看状态试试：$ git status On branch master Initial commit Changes to be committed: (use "git rm --cached ..." to unstage) new file: hello.txt我们的文件已经准备好可以提交了。状态信息还告诉我们暂存区文件发生了什么变动，这里我们新增了一个文件，同样可以做修改和删除。取决于我们在上一次git add之后发…