一、配置
初次使用前的配置:
git config --global user.name <username>
git config --global user.email <email>
这两条语句设定了用户名和邮箱,可以在~/.gitconfig文件中找到并修改。使用git config -l --global
语句可显示这两条信息,该信息会记录在你的每一次的提交当中。
当然和global相对应的就是local了,试想一个使用场景:你在公司的电脑中配置的全局用户名和邮箱为你的真实姓名和工作邮箱,此时你想往自己的GitHub中提交自己的代码,那么你肯定希望用户名和邮箱是你GitHub中注册的信息,这时你可以进入你自己的仓库然后输入git config --local user.email <private email>
,这样局部的配置就会覆盖全局的配置了。如果不放心的话可以使用git config -l --local
查看
二、简单命令
- 创建仓库:
git init
在某个目录下使用该命令后,该目录下会生成一个.git的隐藏文件夹,用于跟踪和管理该目录的改动,这样一来一个git仓库就形成了。 - 添加文件:
git add <filename>
将仓库中某个新建或者修改过的文件添加至暂存区(Stage)。若使用git add .
则会将所在目录及其子目录下所有的文件变更添加至暂存区。 - 提交文件:
git commit -m "<message>"
将暂存区内的文件即git add后的文件提交至仓库(Repository)。也可以直接使用git commit -am "<message>"
,将所有修改,但未进stage的改动加入stage,并记录commit信息。(某种程度上相当于git add
和git commit -m
的组合技,但是不会提交新文件) - 查看状态:
git status
显示仓库当前的状态,如哪些文件被修改或删除了,哪些是新文件。为了掌握好仓库的状态,你需要在每次add或commit前多多使用这个命令。 - 比较差异:
git diff [filename]
若指定了文件,则可以显示该文件修改了哪些内容(与最近一次add或commit相比较),否则显示所有的差异。 - 查看日志:
git log
可显示提交的信息、作者和日期,其中commit id是由SHA1算法生成的。 - 查看操作:
git reflog
可显示每一次的操作ID及内容(如add commit等动作)
三、相关说明
git仓库可分为三个区域:1、工作区。2、暂存区。3、仓库区。在git add之前你对仓库内文件所有的操作(增删改)都会记录在工作区;在git add之后操作记录会存放在暂存区;git commit之后你对文件的修改才会入库。为什么一个入库操作要分成两步呢?因为这样就能保证提交的最小单位为文件的变更而不是文件本身。例如,你的老板让你今天写100行代码完成一项需求,但是你今天状态非常好,早早写完一百行后git add了一下,心想要是今天要是能再写100行老板一定会对我刮目相看,所以我先不急着提交,可是当你又写了50行后你的朋友急着找你王者荣耀,你可不想把半成品提交上去,也不想把那50行代码删除。你敲了git status后发现你的这个文件被分成了两部分,一部分是暂存区中的100行代码,一部分是工作区中的50行代码,这时候,你使用git commit只会将暂存区的100行代码提交上去。然后不需要对文件做任何操作,你就可以开开心心地开黑去了。
-----------------工作区------------------add--------------------暂存区------------------commit--------------------仓库区--------------------