Git创建和使用仓库

本文详细介绍了Git仓库的创建与使用,包括从本地创建新仓库和克隆现有仓库。在使用方面,讲解了如何查看状态、添加文件、提交变更、删除与重命名文件、查看提交历史及撤销操作等核心功能。通过这些步骤,读者可以全面掌握Git的基本操作。

创建Git仓库有两种方式:一种方式是把本地目录作为Git仓库,另一种是从别的地方克隆一个仓库。这两种方式都将在自己的电脑上创建Git仓库。

仓库里的文件可以修改、暂存和添加。

创建

创建库

进入项目文件夹,git init把当前目录转化为Git仓库。

如果需要创建一个新的目录,则使用git init directory创建一个名为directory的文件夹作为仓库。

Git仓库目录下会有一个.git的隐藏文件夹,Git仓库.git文件目录一文讲了一些重要的文件(夹)。

克隆库

下面的命令克隆了一个已存在的Git仓库,并为这个仓库创建一个新的目录,也可创建一个新的文件名。这里的克隆不是简单的复制,而是收集所有的数据信息,所有文件的历史都会被拉取下来。

git clone https://github.com/xxx/xxx
git clone https://github.com/xxx/xxx [新的文件名]

接下来就可以使用仓库了。

使用

Git仓库中所有的文件都有被追踪和未被追踪两种状态。追踪的文件指Git知道的文件,可以是未修改的、修改的或暂存的。未被追踪的文件是那些在工作目录下,但不在Git记录和暂存中的。

查看状态

假设Git仓库中有个README文件,可以通过下面的命令了解文件状态。同时,这个命令也告诉了你正处于哪个分支。

git status README

git status可以查看所有文件的状态。

下面的命令可以更简化地显示信息。

git status -s
git status --short

如果文件名前是??,则表示文件未被追踪;如果是A,则表示已经添加;M表示文件被修改。

查看修改

git diff可以查看那些未被添加文件的修改内容。git diff --stage可以查看那些已经添加到暂存阶段的文件修改过的内容,git diff --cache同义。

添加文件(夹)

通过下面的命令来追踪文(夹)。

git add README

该文件会被添加到暂存区。暂存区是git中很重要的部分,这些文件并不会直接修改历史版本,而是放在暂存区中,可以接受进一步的修改。

如果一个已经被追踪的文件被修改了,也需要使用此命令添加到暂存区。

文件名可设为“-u”选项,表示把所有文件一起提交。

如果希望一个文件夹被忽略掉,不被追踪,则创建一个.gitignore列表文件。 这里列举了一些例子

提交

当修改好内容并添加后,git commit可以提交修改,而那些未被添加到暂存阶段的修改则不会被提交。在提交时输入一些信息,否则无法提交。或者,使用-m选项输入信息进行提交。

git commit -m "信息"

每一次提交,都是一次对项目的一次快照,可以恢复,也可以比较。

上面第3、4步需要连续使用,稍微有点复杂,如果想要跳过第3步,则加一个-a参数即可

git commit -a -m "信息"

如果要修改最近一次提交,使用--amend选项。

git commit --amend

删除

如果需要从git管理中删除文件,则使用git rm命令,在commit之后,同时会把文件从工作目录中删除。

如果只是简单地从文件目录删除该文件,状态只会变为未暂存。而如果使用git rm,它会暂存这一状态。提交之后,这个文件就会消失,并且不会被git追踪。

如果要强制删除一个已经被修改或者加入到暂存区的文件,则需要加上-f选项。

如果想让git不去追踪文件,又不想让它从目录中删除,则加上--cache选项。

git rm --cache README

重命名

git mv命令重命名文件,把readme改名为README。

git mv readme README

查看提交历史

git log可以查看提交历史。-p(或-patch)可以显示每次提交的不同之处。

git log -2

要查看更简略的状态信息可以使用--stat选项。

git log --stat

--pretty选项可以改变输出格式,其值可以是onelineshortfullfuller。使用format值还可以自定义输出。

git log --pretty=oneline
git log --pretty=format:"%h - %an, %ar : %s"

format选项可以配合--graph使用,可以展示分支和合并历史。

git log --pretty=format:"%h %s --graph

还可以对查看日志范围进行限制。-<n>表示查看最近n次提交。

git log -2

也可以使用--since--until选项,查看最近2周提交。

git log --since=2.weeks

这种方式还可以自定义时间。

git log --since=2020-1-1
git log --since="three days ago"

如果要筛选特定作者使用--author选项;--grep可以从提交信息里搜索关键词。

还可以讲日志输出到文件。

git log -- path/file

另外,gitk命令会弹出一个图形化界面,可查看版本演进。
在这里插入图片描述

补充提交

如果提交完成后发现遗漏了某个文件,可以先把该文件加入暂存区,再使用--amend选项提交。

git add forgetten_file
git commit --amend

提交之后还可以修改上一次提交时的信息。

撤销

如果已经添加了一个文件到暂存区,想要撤销添加使用下面的命令。

git add README
git reset HEAD README

如果已经修改了某个文件,想要撤销修改使用下面命令。

git ckeckout -- README

git将用上次提交的文件替换已修改的文件。

从2.23.0版本开始,git restore替换了git reset

git restore --staged README

该命令也替换了git checkout

git restore README
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值