一、配置
初次使用前的配置:
- git config --global user.name "<username>"
- git config --global user.email "<email>"
这两条语句设定了用户名和邮箱,可以在~/.gitconfig文件中找到并修改。使用git config -l --global语句可显示这两条信息,该信息会记录在你的每一次的提交当中
二、简单命令
- 创建仓库: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--------------------仓库区--------------------