第一步:下载安装

第二步:配置

git config --global  user.name "Username"
git config --global  user.email "Username@example.com"~

第三步:创建项目~

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit~
git init~   过git init命令把这个目录变成Git可以管理的仓库~

git 项目架构 git框架_工作区

第四步:忽略文件~

忽略扩展名为.pyc的文件,它是根据.py文件自动生成啊,我们无需让Git去跟踪。这些文件存储在目录__pycache__中,未来让git忽略它,我们创建一个名为.gitignore的特殊文件,(这个文件是以局点打头,没有扩展名,并且让在其中添加下面一行内容)~

_pycache_/~

第五步:初始化仓库~

初始化一个Git仓库,使用git init命令。添加文件到Git仓库,分两步:使用命令git add ,注意,可反复多次使用,添加多个文件;使用命令git commit -m ,完成。~

第六步:检查状态

$ git status
On branch masterNo commits yet~
如果有修改,
用git diff可以查看修改内容。~

第七步:将文件加入到仓库以及提交

git 项目架构 git框架_git 项目架构_02

第八步:查看提交历史~

$ git log
commit 5d6cecad80427924b94b14c6fd2bb82a4fa86840 (HEAD -> master)
Author: username <xxxxxxxxxx.example.com>
Date: Sat Dec 9 20:16:17 2017 +0800~

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:$ git log --pretty=oneline

第九步:再次提交

第十步:撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。~

删除文件

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:$ rm test.txt~

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:~

$ git checkout .~
Git会告诉你,git checkout – file可以丢弃工作区的修改:~
git checkout – file命令中的–很重要,没有–,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。~

Git同样告诉我们,用命令git reset HEAD 可以把暂存区的修改撤销掉(unstage),重新放回工作区:~
$ git reset HEAD readme.txt~

$ git reset --hard HEAD^
HEAD is now at e475afc add distributed~

$ git reset --hard 1094a
HEAD is now at 83b0afe append GPL~
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
果然,我胡汉三又回来了。~

git reflog~ 用来记录你的每一次命令:~

第十一步:检查以前的提交~

$ git log --pretty=oneline~
b4ee15ddf5274f488db8c74c327065c6f331ec5e (HEAD -> master) Extrended greeting.
5d6cecad80427924b94b14c6fd2bb82a4fa86840 Started project~

$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
果然,我胡汉三又回来了。~

我们可以检查提交历史中的任何一次提交,而不仅仅是最后一次,为此我们可以在命令git check末尾指定该提交的引用ID的前6个字符(而不是局点)。通过检查出以前的提交,我们可以对其进行审核么然后返回到最后一次提交,或者放弃最近所做的工作,并选择以前的提交。~
$ git checkout 5d6cec
Note: checking out ‘5d6cec’.~

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。~

提交后,用git diff HEAD – readme.txt命令可以查看工作区和版本库里面最新版本的区别:~

第十二步:删除仓库~

$ git status
On branch master
nothing to commit, working tree clean~
$ rm -rf .git 表示删除目录.git,删除后我们将继续查看状态。~
$ git status
fatal: Not a git repository (or any of the parent directories): .git~

搭建远程库

第一步 创建SSH


git 项目架构 git框架_推送_03

git 项目架构 git框架_工作区_04

用户下会产生公钥与私钥。

第二步 github上创建仓库

git 项目架构 git框架_git_05

第三步 将本地仓库同步到github中

git 项目架构 git框架_推送_06

第四步 将本地仓库推送到github中

$ git push -u origin master~
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。~

git 项目架构 git框架_工作区_07


git 项目架构 git框架_推送_08

第五步 建立分支

git 项目架构 git框架_推送_09

git 项目架构 git框架_git 项目架构_10

Bug分支

git 项目架构 git框架_git 项目架构_11

新分支

git 项目架构 git框架_git_12

多人协作

git 项目架构 git框架_git 项目架构_13