克隆一个远程库到本地:

git clone https://github.com/fesiong/goblog.git


创建git仓库:
在指定的目录下执行 git init

将文件加入版本库:
git add 文件名(可以是目录,或多个文件名)

提交到仓库:
git commit -m "关于提交的说明"

回退到上一个版本:
git reset --hard HEAD^ (HEAD^^上上版本,HEAD~n前n个版本)
撤销修改:
1.你对工作区的修改已经提交到了版本库(执行了git commit),这时需要进行版本回退操作.
2.你对工作区的文件的修改已经添加到版本库的暂存区时(执行了git add),但还没有提交到版本库时(没有git commit);
git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区.
git checkout -- file可以丢弃工作区的修改,使工作区(或工作区中的某些文件)恢复到上一次git add或git commit时的状态.
3.对于修改后还没有被放到暂存区(没有执行 git add)的文件,只要执行git checkout -- file就可以了.

git使用远程覆盖本地:
git fetch --all
git reset --hard origin/master
git pull

Git鼓励大量使用分支:
查看分支: git branch
创建分支: git branch <name>
切换分支: git checkout <name>
创建+切换分支: git checkout -b <name>
合并某分支到当前分支: git merge <name>
删除分支: git branch -d <name>



查看信息:
git:
直接输入git将提示git的使用信息.

git status:
查看仓库的状态,它会告诉我们什么文件被修改了,什么文件修改了但是还没有提交,什么文件是刚添加进来的等等.

git diff:
查看difference,它能告诉我们我们在某个文件上所做的修改.
git diff readme.txt ---将显示我们在readme.txt上所做的修改

git log:
查看历史记录,它能告诉我们从最近到最远的提交日志.
--pretty=oneline参数: 简化显示的内容.
git log命令显示的内容有commit id(版本号),作者,日期,及该版本的修改.
用带参数的git log也可以看到分支的合并情况: git log --graph --pretty=oneline --abbrev-commit

git reflog:
git reflog命令能够查看我们执行的每一次命令.

git branch:
查看分支信息

git stash list:
查看工作现场的信息

git remote:
查看远程库的信息
-v显示更详细的信息

git tag:
查看所有标签

git show <tagname>:
查看标签信息

信息:
Fast-forward信息,Git告诉我们,这次合并是"快进模式",也就是直接把一个分支指向另一个分支的当前提交,所以合并速度非常快.


## .gitignore文件规则
语法规范(熟悉正则很容易理解)
空行或是以#开头的行即注释行将被忽略;
以斜杠 '/' 结尾表示目录;
以星号 '*' 通配多个字符;
以问号 '?' 通配单个字符
以方括号 '[]' 包含单个字符的匹配列表;
以叹号 '!' 表示不忽略(跟踪)匹配到的文件或目录;
可以在前面添加斜杠 '/' 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。

配置文件示例
# 忽略后缀为.a的文件
*.a
# 但不忽略 lib.a, 尽管已经在前面忽略了.a文件
!lib.a
# 仅在当前目录下忽略 TODO.txt 文件,但不忽略子目录下的 subdir/TODO.txt
/TODO.txt

# 忽略 build/ 文件夹下的所有文件
build/

# 忽略 doc/notes.txt, 不忽略 doc/server/arch.txt
doc/*.txt

# 忽略在doc/下的所有.pdf 文件
doc/**/*.pdf

配置文件模板
Github 上为开发者提供了各种环境以及各种编程语言的 gitignore 文件配置模板:
https://github.com/github/gitignore
python模板:
url:https://github.com/github/gitignore/blob/master/Python.gitignore