下载安装git
Linux下安装
在Ubuntu里,用以下命令从软件仓库中下载git,其他发行版使用各自的软件包管理工具来安装。
sudo apt install git
静等安装结束,检查是否成功:
git --version
若安装成功,会打印git的版本信息:
git version 2.20.1
若是安装失败,会提示命令未找到,需重新安装。
bash: git: command not found
Windows下安装
在Windows下安装git可直接去官网下载安装包,像平时在win上安装软件一样即可。安装完毕,打开power shell输入git --verion
测试是否成功安装。
配置git环境
每当在一台新电脑上安装了git后,都要首先配置git的环境,以便后续使用。可用git config
来获取即更新git的配置信息。
第一件要做的事就是设置git的用户名和邮箱地址,否则,就不能提交修改。试着运行git commit
,发现不能提交。
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
可以看到,git已经给出了设置用户名和邮箱的命令,即:
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
再次运行git commit
,成功运行,且进入了nano的编辑界面
这个界面的作用,后面我详细介绍。现在先回过头来,我不喜欢使用nano,能不能换成我喜欢的vim呢?当然可以,使用命令,把默认的编辑器换成vim:
git config --global core.editor vim
运行git commit
,可以看到,编辑器已经从nano换成vim了!
git config --list #用这个命令来打印配置信息
user.name=chunson
user.email=[email protected]
core.editor=vim
……
建立git仓库
配置好git的环境信息后,就能建立git仓库(repository)了,有两个方式:
从本地建立
——在本地未纳入git管理的目录下,用git init
命令建立git仓库,这个仓库可以管理此目录下的所以文件(夹)。
首先,切到想要纳入git管理的目录,我用/home/cc/Default示范。
git init #在/home/cc/Default目录下执行此命令即可
Initialized empty Git repository in /home/cc/Default/.git/ #成功创建git仓库
这时,git会在/home/cc/Default下创建一个隐藏目录.git,这是git来跟踪管理仓库的,因此不要随意去碰这个文件夹的内容。
克隆已有项目
——用git clone
把别人的仓库复制到目前的工作目录下。
比如,我在GitHub下有个项目,想在新的电脑继续工作,使用git clone
就可以把它克隆(clone)下来。
git clone https://github.com/cuncinc/cReader.git
Cloning into 'cReader'...
remote: Enumerating objects: 835, done.
remote: Counting objects: 100% (835/835), done.
remote: Compressing objects: 100% (335/335), done.
remote: Total 835 (delta 413), reused 773 (delta 353), pack-reused 0 Receiving objects: 100% (835/835), 310.75 KiB | 14.00 KiB/s, done. Resolving deltas: 100% (413/413), done.
执行命令,项目克隆完毕,done!可以继续在新电脑工作!
跟踪文件
虽然已经在本地建立了git的仓库,但并不意味着git已经能够记录文件的修改过程。在一个已经建立git仓库的工作目录中,每个文件都可能会有两种状态:已跟踪(tracked)和未跟踪(untracked),跟踪是指文件已纳入版本控制,git会记录其修改状态。而在新建了仓库的目录中,所有文件都是未跟踪的状态。如何把文件变成已跟踪的状态呢?只需要使用git add
即可。
#在/home/cc/Default目录下执行
git add ./README.md #把README.md纳入跟踪
git add . #把整个目录的所有文件纳入跟踪
git add *.c #把目录下所有.c文件纳入跟踪
执行git add
命令,若没有提示信息,则表示文件已经纳入跟踪;若有错误则会打印错误信息。
若一不小心把某个不想纳入跟踪的文件进行了跟踪,如何删去呢?用git rm
即可:
git rm --cache "你需要移去的文件名" #把在暂存区的文件移除
在一个项目里,总有那么很多文件不想纳入跟踪,如果一不小心把它们加入跟踪会造成严重的后果,该如何解决?其实,只要新建一个名为.gitignore
的文件,并把不想让git跟踪的文件的文件名写入.gitignore
里,git就不能会跟踪这个文件了(但是git能跟踪.gitignore本身)。
可以看到,若想把一个在.gitignore
里的文件纳入跟踪,git就会提示错误信息。若仍想加入,可用-f
选项(force)强制执行。
查看文件状态
在工作目录下,可以用git status
查看文件的状态。
git add *.txt #把/home/cc/Default目录下的所有txt文件纳入跟踪
git status #查看文件的状态
可以看到,git提示txt文件被放入暂存区(已跟踪),其他文件还未被纳入跟踪 。
提交修改
一个已跟踪的文件, 有三个状态,分别是未修改(unmodified)、已修改(modified)和放入暂存区(staged),这三者之间的关系如下图。
一个刚纳入跟踪的文件,处于暂存区,但是git还没有把这些修改真正记录下来,要想记录修改,就得提交(commit)这些修改。提交使用git commit
命令:
git commit
执行提交命令,就会进入一个编辑界面。可以看到,注释信息说到在master分支,很多新文件被提交。也说到这些注释信息都是会被忽略掉的,只有我们自己输入的信息才会被记录下来。
我们要在这个编辑界面里输入关于此次提交的信息,便于以后知道这次提交做了什么事,修复了哪些bug等等,比如“初始化项目”。
在提交的时候,每次都进入vim窗口编辑太麻烦,也可以使用-m
选项来简化流程:
git commit -m "你的提交信息注释"