学习的步骤是按照廖雪峰老师的网站上的Git教程走的,仅作个人记录,更详细的学习请移步上述链接。
一、安装git
初步学习是在Win上开发,故而选择msysgit,下载地址https://git-for-windows.github.io下载完成后选择一下安装路径,之后的一路next,全部默认安装。安装后在开始菜单里找到“Git”->“Git Bash”来设置全局配置:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
二、创建版本库
我创建一个空文件夹在以下目录:D:\Disk F\git-test
在Git Bash中
有几个命令和在linux下一样,pwd 、ls 、cd 、cd.. 、cd / 和tab补全。
在这个文件下新建一个txt文本(名为test.txt)并用notepad编写:
Git is a version control system.
Git is free software.
并保存。
在GitBash中,使用廖雪峰老师原话:
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
通过git init命令把这个目录变成Git可以管理的仓库
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
然后
git add test.txt
git commit -m "wrote a test file"
原话:
简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。嫌麻烦不想输入-m “xxx”行不行?确实有办法可以这么干,但是强烈不建议你这么干,因为输入说明对自己对别人阅读都很重要。git commit命令执行成功后会告诉你,1个文件被改动(我们新添加的readme.txt文件),插入了两行内容(readme.txt有两行内容)。为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
现在总结一下今天学的两点内容:
初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
第一步,使用命令git add ,注意,可反复多次使用,添加多个文件;第二步,使用命令git commit,完成。
三、git status和git diff
在文本中新增:
接着git status:
my@Edison-TP MINGW64 /d/Disk F/git-test (master)
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
可知,test.txt被修改了但是并没提交,接着git diff test.txt:
my@Edison-TP MINGW64 /d/Disk F/git-test (master)
$ git diff test.txt
diff --git a/test.txt b/test.txt
index 46d49bf..1e7bfd5 100644
--- a/test.txt
+++ b/test.txt
@@ -1,2 +1,3 @@
Git is a version control system.
Git is free software.
+Git is adorable.
接着:
my@Edison-TP MINGW64 /d/Disk F/git-test (master)
$ git add test.txt
my@Edison-TP MINGW64 /d/Disk F/git-test (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: test.txt
my@Edison-TP MINGW64 /d/Disk F/git-test (master)
$ git commit -m "ado"
[master 6bf9cea] ado
1 file changed, 1 insertion(+)
my@Edison-TP MINGW64 /d/Disk F/git-test (master)
$ git status
On branch master
nothing to commit, working tree clean
原话:
Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的。小结:要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
待续。。。