0


Git - 学会这几个本地命令够你浪上好几天

Git 基本操作(本地库)

head

  很多小伙伴可能都听说过 Git,那么 Git 到底是什么? 为什么那么多人都在使用它?
  Git 是一个开源的分布式版本控制系统,用于敏捷、高效地处理任何大中小项目,特别是对于团队协作开发起到了积极有效的推进作用。
通俗地讲,Git 就像我们玩 RPG 游戏时的存档系统,它可以随时保存你的游戏进度。一旦我们失败或者想重温剧情,就可以读取某个存档重新开始。
  接下来,我将分为两篇文章分别介绍 Git 本地库管理和远程库操作等内容,相信很快你就会喜欢上 Git!

一、准备

  • 安装 Git,这里是官方下载地址。
  • 远程基本操作请看【Git - 学会这几个远程命令够你浪上好几年】。
  • 创建本地库文件夹,用来保存你的项目文件。然后在库文件夹中鼠标右键选择 Open Git Bash here,在当前位置运行 Git,自动打开命令行窗口:Bash here 你的命令行可能与这里的不同,没关系,因为我们的目录结构本就不同。接下来我们开始使用 Git 命令完成本地库的基本操作。注意,以下操作请在上面窗口中执行(支持 Linux 命令)。

二、操作流程

  1. 开始操作以前,我们先设置一下用户基本信息:*git config --global user.name"your name"****git config --global user.email"your email"***每一次提交时,Git 都要收集和保存提交者的基本信息,包括用户名和邮箱地址。 我们通过以下两个命令进行设置:user.nameuser.email也可以通过修改 C:\Users\用户名\.gitconfig 文件来设置:.gitconfig

  2. git init 这个命令用来初始化你的本地库:init Git 提示,在当前目录下初始化了一个空的 Git 库。从现在开始 Git 开始接管你的本地库,全程跟踪本地库中所有文件的创建、修改和删除等状态。 如果你够仔细,会发现命令行末端多出了一个 .git 文件夹。这个文件夹是由 Git 自动创建的隐藏文件(Linux 中以 “.” 开始的都是隐藏文件),保存着版本库相关的文件。 我们来看看这个文件夹:ls .git注意,不要轻易改动或删除 .git 文件夹中的所有文件!想要了解更多参数,可以查看【init 命令】

  3. git status 这个命令用于查看文件的各种状态。作为演示,我们新建一个 readme.txt 文件,向其中写入一些内容:readme.txt 我们使用 status 命令查看 Git 对这个新建文件的反应:status Git 在未跟踪文件中列出了 readme.txt 文件,并且以红色标识,很醒目地提示我们该文件尚未跟踪。最后那行提示我们如何把未跟踪文件添加到暂存区。想要了解更多参数,可以查看【status 命令】

  4. git add[-A / file name] 这个命令将未跟踪文件添加到暂存区。我们试着添加 readme.txt:add 执行命令后没有任何提示,说明文件添加成功。 输入 status 命令查看一下:status Git 状态改变了,readme.txt 文件变成绿色,表示可提交了。同时 Git 还提示我们如何撤回刚才添加的文件。常用命令参数说明:-A     - 表示添加本地库中所有未跟踪文件;file name - 表示添加指定文件,可以一次性指定多个文件并用空格分开。**想要了解更多参数,可以查看【add 命令】

  5. git commit -m"message" 这个命令的作用是把暂存区的文件提交到版本库。通过前面的操作,我们已经把 readme.txt 文件添加到了暂存区。接下来,我们把它提交到版本库:commit 简单解释一下 “message” 参数,它可以是任何内容,建议输入本次提交的简短说明,方便在提交记录中快速定位。执行结果:1 file changed - 表示一个文件状态发生变化(提交了 readme.txt 文件);1 insertion(+) - 表示插入了一行内容(readme.txt 中新写入了一行)。**想要了解更多参数,可以查看【commit 命令】

  6. git log 通过上面的一系列操作,我们成功地把一个新建文件提交到了版本库,提交记录也被完整保存下来。现在使用 log 命令查看我们刚才的提交记录:log 看到那长长的数字串了吗?其实那是每次提交的 hash 码,一组很大的十六进制数。你可以把它当做一组序列号或者 id,它是唯一的,就是为了区分其它的提交。*HEAD -> master* - 表示 HEAD(版本指针)指向当前提交版本。**想要了解更多参数,可以查看【log 命令】

  7. git diff 接下来我们继续修改 readme.txt 文件,再输入一行新的内容:cat readme 文件内容被修改,我们使用 status 命令查看一下:status 完美!看到那行红色文字了吗? Git 准确的检测到文件的变化,提醒我们 readme.txt 文件被改动了,但还没有添加到暂存区。Git 还贴心地告诉我们,可以使用 add 命令把修改内容添加到暂存区,或者使用 restore 命令放弃本次修改。 如果不是你本人操作,或者是修改的时间太久了,你可能也忘记文件到底改动了什么。没关系,我们使用 diff 命令与上次提交的内容对比,马上一目了然:diff diff 命令不带参数时 Git 默认对比最近的一次提交。从执行结果可以看出,“b” 文件新增了一行内容(带 “+” 号),就是 “Provides both …” 那行内容。 好的,检查完修改内容,我们再次提交:addcommit 提交完成,查看当前状态:status Git 通知我们,整个工作区已经整理干净,无需提交任何文件。这一刻,有没有感觉心里瞬间通畅无比?想要了解更多参数,可以查看【diff 命令】

  8. git reset 当你看到这个命令时,可能猜到它是做什么的了。是的,它能把当前提交状态恢复到任何一次的状态。换句话说,可以升级或降级到任何版本。 目前为止,readme.txt 文件已经被提交了两次。为了方便演示 reset 命令,现在使用前面学过的命令,对 readme.txt 文件再次修改,形成多次提交记录:modifiedaddcommitreflog 现在我们已经有了三次提交记录:

  • 版本一:wrote a readme file
  • 版本二:Added the ‘Provides both …’ line
  • 版本三:Added the ‘with an unusually rich …’ line 接下来,我们使用 reset 命令把 readme.txt 文件恢复到第一次提交的时刻:reset Git 提醒我们 HEAD 现在指向了 “5356e79”。这串数字从哪来的呢?它就是我们每次提交的 id 号的前七位(还记得吗?那长长得令人恐怖的数字串)。强烈推荐你使用 reflog 命令去查看,除非你有超强的记忆力! 好了,回归正题,赶快去看看我们的劳动成果吧:readme.txt 很神奇是吧? 文件内容好像不一样了。进入库文件夹打开 readme.txt,里面的内容的确变成第一次提交时的内容。一朝回到了解放前,此时的你一定很忐忑吧。不过大可不必,你完全可以让文件恢复到应该有的样子,这种事情对于 Git 来说简直不要太简单。 既然如此,我们试着把文件恢复到第二次提交时刻:reflogreset 轻轻松松的, Git 瞬间就把 readme.txt 文件恢复到第二次提交时的状态。怎么样,是不是很享受这种尽在掌握的感觉?想要了解更多参数,可以查看【reset 命令】

三、小结

上面我们使用了七个命令(reflog 归为 log 命令),熟练运用这些命令足以应对本地基本操作了。现在我们来总结一下这些命令:

  • git int 初始化本地库;
  • git status 查看本地库文件的跟踪情况;
  • git add 把文件添加到暂存区;
  • git commit 把文件提交到版本库;
  • git loggit reflog 查看提交记录;
  • git diff 查看指定版本间的差别。
  • git reset 把当前文件恢复到指定版本 其实,大部分命令都可以附带参数,实现更精准地控制。如果想要更进一步了解参数的具体作用,请使用 git --help 命令。
标签: git github gitee

本文转载自: https://blog.csdn.net/liujun_sdn/article/details/142556100
版权归原作者 liujunapp 所有, 如有侵权,请联系我们删除。

“Git - 学会这几个本地命令够你浪上好几天”的评论:

还没有评论