首页
学习
活动
专区
工具
TVP
发布

Pro Git 读书笔记

2.1 获取 Git 仓库在现有目录初始化仓库

gitinit命令将创建一个名为的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。此时这些文件还处于未被跟踪状态,需要执行命令来对文件进行跟踪,然后执行进行提交。

gitadd .

gitadd README.txt

gitcommit

gitcommit-m"init version control"克隆已有仓库使用命令就可以将远程服务器的所有代码克隆到本地,命令格式是。

gitclone https://github.com/libgit2/libgit2如果想自定义本地仓库的名字,命令如下:

$ gitclone https://github.com/libgit2/libgit2 mylibgit此时就会在本地新建一个的文件夹。Git 支持多种数据传输协议。 上面的例子使用的是协议,不过你也可以使用协议或者使用 SSH 传输协议,比如。记录每次更新到仓库工作目录中的文件状态分别是 : 已跟踪和未跟踪。已跟踪又分:未修改、已修改和已放入暂存区。工作目录中出了已跟踪的文件之外都是未跟踪的。Git 文件的生命周期如下:

检查文件的状态使用来查看,

gitstatus

On branch master

nothing to commit, working directory clean上述信息表明:当前分支是, 工作目录比较干净没有任何提交。如果我们新建一个 README.txt 文件,通过命令来查看显示如下:

$ echo'readme'> README.txt

$ gitstatus

On branch master

Untracked files:

(use"git add ..."to includeinwhat will be committed)

README.txt

nothing added to commit but untracked files present (use"git add"to track)此时 新建的 README.txt 文件出现在下面,说明 README.txt 未纳入 Git 的跟踪范围。 Git 会根据当前文件的状态给出上面的友好提示,方便我们进一步操作。跟踪新文件命令是, 如果要跟踪 README.txt 文件,执行:

gitadd README.txt此时运行命令,如下:

gitstatus

On branch master

Changes to be committed:

(use"git reset HEAD ..."to unstage)

new file: README.txt会看到 README.txt 文件已被跟踪,并处于(暂存) 状态。命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。 如果要从缓存区撤销文件需要执行。暂存已修改文件如果你要修改工作目录中的文件,修改之后运行命令,显示如下:

gitstatus

On branch master

Changes to be committed:

(use"git reset HEAD ..."to unstage)

new file: README

Changes not stagedforcommit:

(use"git add ..."to update what will be committed)

(use"git checkout -- ..."to discard changesinworking directory)

modified: CONTRIBUTING.md文件出现在这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要执行命令。命令有很多的作用,如下:跟踪新文件把已跟踪的新文件放到暂存起把合并时的冲突文件标记为已解决状态。我们可以把它理解为“添加内容到下一次提交中”。执行命令将放到暂存区,再执行一遍显示如下:

gitadd CONTRIBUTING.md

gitstatus

On branch master

Changes to be committed:

(use"git reset HEAD ..."to unstage)

new file: README

modified: CONTRIBUTING.md此时,文件已经被添加到暂存区。当我们再次对进行修改时,执行一遍看看,如下:

gitstatus

On branch master

Changes to be committed:

(use"git reset HEAD ..."to unstage)

new file: README

modified: CONTRIBUTING.md

Changes not stagedforcommit:

(use"git add ..."to update what will be committed)

(use"git checkout -- ..."to discard changesinworking directory)

modified: CONTRIBUTING.md此时同时出现在了暂存区和工作区,暂存区暂存的是你执行时 文件的快照,如果你执行命令,你会把存在暂存区的文件提上去,但是你本次修改并不会提到本地版本库中。如果把本次版本入库,需要执行命令,把最新的文件放到 暂存区中。状态简揽/忽略文件会自动为我们创建文件,在这个文件中可以列出要忽略的文件。规则如下:文件的格式规范如下:所有空行或者以开头的行都会被 Git 忽略。可以使用标准的 glob 模式匹配。匹配模式可以以()开头防止递归。匹配模式可以以()结尾指定目录。要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号()取反。Github文件忽略库文件差异要查看已暂存和未暂存的差异,使用命令,该命令比较的是工作区文件和暂存区文件的差异。如果要查看已暂存的将要添加到下次提交的内容,可以使用命令或者命令。我们也可以指定 第三方工具帮助我们分析文件的差异,需要配置命令。文件提交提交时记录的是放在暂存区域的快照。 任何还未暂存的仍然保持已修改状态,可以在下次提交时纳入版本管理。 每一次运行提交操作,都是对你项目作一次快照,以后可以回到这个状态,或者进行比较。命令如下:跳过使用暂存区移除文件从中移除某个文件,实质上是从暂存区移除,然后执行提交。使用命令。 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项。如果我们想把仓库中的文件删除但想保留在本地,我们可以执行命令。移动文件

gitmvfile_old file-new查看提交历史查看提交历史使用来开始查看提交历史,该命令有许多选项可以帮助你搜寻你所要找的提交,介绍一些比较常用的。用来显示最近两次提交的内容差异查看每次提交的简略的统计信息指定使用不同于默认格式的方式展示提交历史。很多子选项也是很有用的,将每个提交显示在一行

gitlog--pretty=oneline定制要显示的记录格式

gitlog--pretty=format:"%h - %an, %ar : %s"撤销操作遗漏文件没有提交执行尝试重新提交,会覆盖一切上次提交,记录里只会有一次提交。取消暂存区文件执行可以对文件取消暂存撤销对文件的修改执行可以撤销你对文件做的所有修改,它的原理是拷贝了另一个文件来覆盖它。是一个很危险的命令。远程仓库查看远程仓库执行命令,会列车远程服务器的简写。是远程仓库服务器的默认名字。会显示读写远程仓库的简写与对应的 Url

gitremote-v

originhttps://github.com/schacon/ticgit (fetch)

originhttps://github.com/schacon/ticgit (push)添加远程仓库运行命令,会添加一个新的 Git 仓库,使用来代替 Url。

gitremote

origin

gitremote add pb https://github.com/paulboone/ticgit

gitremote-v

originhttps://github.com/schacon/ticgit (fetch)

originhttps://github.com/schacon/ticgit (push)

pbhttps://github.com/paulboone/ticgit (fetch)

pbhttps://github.com/paulboone/ticgit (push)抓取与拉取远程仓库该命令会将远程仓库的数据拉取到本地仓库, 但它并不会自动合并或者修改你当前的目录,你必须手动完成合并工作。该命令会自动抓取然后合并远程分支到当前分支。推送到远程仓库查看远程仓库信息移除和重命名远程仓库修改远程仓库的名字移除远程仓库打标签会列出已有的标签使用特定模式查找标签创建标签附注标签

git tag -a v1.4 -m 'my version 1.4'可以看到标签信息和对应的提交信息轻量标签后期打标签共享标签推送标签到共享服务器。一次将所有不在远程仓库的标签传送到服务器。检出标签在特定标签创建一个新的分支。Git 别名通过文件来为每个命令设置别名,如下:

gitconfig--globalalias.co checkout

gitconfig--globalalias.br branch

gitconfig--globalalias.ci commit

gitconfig--globalalias.st status

gitconfig--globalalias.unstage'reset HEAD --'

gitconfig--globalalias.last'log -1 HEAD'

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180114G0K0NW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券