Git本地仓库基本操作


1、设置用户名和邮箱地址

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

运行上面的两行命令后这台电脑上的所有 Git 仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。此外,如果你用 github 托管你的项目,最好把邮箱设置成与 github 的邮箱一样。

2、创建一个版本库

创建一个空目录

$ mkdir dirName

将空目录设置为版本库

$ cd dirName
$ git init

这一步完成后在刚刚创建的目录下会有一个新的且默认是隐藏的 .git 文件夹,这个文件夹是 Git 来跟踪管理版本库用的。

3、把文件提交至版本库

Git 可以管理任何形式的文件,但是 Git 只能跟踪文本文件的改动,例如代码、txt文件。而对于二进制文件,Git 只能管理不能跟踪到具体的改动,例如图片、视频。

1)将工作区的 readme.txt 添加到暂存区(stage)
进入仓库的目录,运行

$ git add <file>

在 Windows 下可能会提示:

如果出现上图所示的警告,则参考解决方案
除此之外,git add 文件夹/命令可添加整个文件夹及内容,git add *.文件类型命令可添加当前目录中所有此文件类型的文件。
2)把暂存区的所有内容提交到当前分支

$ git commit -m "commit_message"

-m后面的 “commit_message” 是对本次提交的说明信息。
此时会提示改动了几个文件,以及具体做了哪些改动。
注意,git commit 命令一次可以提交多个文件,也就是说可以先执行多个 git add 命令后,再执行一次 git commit 命令便可将多个文件一次性提交。

4、修改文件

在工作区里修改某个文件的内容后,执行

$ git status

此时 Git 会提示我们 Changes not staged for commit 和 no changes added to commit。

git status 这个命令可查看查看当前路径下的的状态,常见的几个状态包括:
Changes not staged for commit: 工作区里面存在修改过但还没有添加到暂存区的文件;
no changes added to commit:暂存区里面没有需要提交至版本库的文件;
Changes to be committed: 暂存区里面存在需要提交至版本库的文件;
nothing to commit, working tree clean: 没有需要提交的文件,工作区是干净的。

此外,要想具体地查看工作区中的文件与暂存区文件的差异,则需要执行

$ git diff <file>

接着执行 git add 命令把工作区中被修改过的文件添加至暂存区,再一次执行 git status 命令,此时会 Git 会提示 Changes to be committed。
最后执行 git commit -m "commit_message"把暂存区的文件提交至版本库,执行 git status,此时Git 会提示 nothing to commit, working tree clean。

5、版本回退

1)查看提交日志

$ git log

执行以上的命令,Git会显示从最近到最远的提交日志。在日志中,类似于 5a8663c091aa2f9d4c76756f627737c8ce472f49 的一长串十六进制数字是每次提交的版本号,同时我们可以看到提交的作者,时间,以及对每一次提交的说明信息。
如果想简化显示的信息,可以执行 git log --pretty=oneline,Git则只会显示出版本号和每一次提交的说明。

在显示的信息中,可以发现某一个版本号后面跟了一个 (HEAD -> master) ,表示这是当前的版本。上一个版本就是 HEAD^ ,上上个版本就是HEAD^^ ,当然往前100个版本写 100个 ^ 会数不过来,所以写成 HEAD~100

2)回退上一个版本

$ git reset --hard HEAD^

除此上面的命令外,利用 git reset --hard commitId 也可以回到某个指定的版本,其中 commitId 是这一次提交对应的版本号。
Git 的版本回退速度非常快,因为 Git 在内部有个指向当前版本的 HEAD 指针,当你回退版本的时候,Git 仅需要把 HEAD 从当前版本指向需要回到的版本即可。

6、撤销修改

若改乱了工作区某个文件的内容,但没有添加到暂存区时,用命令 git checkout -- <file> 可撤销修改。
若改乱了工作区某个文件的内容,并将其添加到了暂存区时,想丢弃修改,分两步,先用命令git reset HEAD <file> 撤销暂存区的修改,再执行 git checkout -- <file> 工作区的修改。

7、删除文件

仅删除工作区的文件: rm <file>
仅删除暂存区的文件: git rm --cached <file>
将工作区和暂存区的文件一起删除:git rm <file>
删除版本库里的文件: 先删除暂存区的文件后,在用 git commit 提交至版本库。

若误删了工作区的文件,但是暂存区的文件还在,执行git checkout -- <file>,便可利用暂存区的文件将工作区误删的文件恢复。
若工作区和暂存区的文件一起删除了,则只能通过版本回退的方法恢复文件了。


参考链接:
[1] https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
[2] https://www.cnblogs.com/yaoxiaowen/p/8227873.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值