###基本配置

1
2
3
4
5
6
7
8
9
安装:
sudo apt-get install git
git --version
配置用户名和邮箱:
git config --global user.name xxx
git config --global user.email xxx@qq.com

创建密钥:(生成的密钥默认存放在~/.ssh目录下)
ssh-keygen -t rsa -C "xxx@qq.com"

本地仓库及操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
git init (初始化一个仓库)
git add [文件名] (添加新的文件)
git commit -m [关于本次提交的相关说明] (提交)
git status (当前Git仓库的状态)
git diff (如果文件改变,比较两个文件内容)
git add[文件名] || git commit -a -m [关于本次提交的相关说明] (若文文件改变,将改变的文件放到缓冲区中 || 放到缓冲区并提价)
git log (查看提交说明)
git reset --hard head~[N] (返回到前N个版本)
git reset --hard [commit id] (回到commit id对应的版本)
git reflog (找不到commit id 时 使用该命令,显示有可能产生commit id的命令对应的commit id)
撤销修改:
git checkout --[文件名] (--很重要,没有--,就变成了“切换到另一个分支”的命令)
说明: 把文件在 工作区 的修改全部撤销,这里有两种情况:(已commit则回到commit前,没有commit则回到远程仓库一致)
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态;

删除操作:
git rm [文件名]
直接在windows窗口中删除 或者 使用该命令删除都可以,但是这只是工作区删除,还没有在版本库中删除。

删除后提交:
git commit -m [关于本次提交的相关说明] (提交,将版本库中的文件也删除)
如果不小心删错了文件,不要怕,妹妹教你
git checkout --[文件名] (因为版本库里还有,所以可以把误删的文件恢复到最新版本)

刷新忽略文件
## git rm -r --cached . (可以用于刷新忽略文件)

####远程仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git remote add [远程仓库名] [远程仓库地址] 
git remote rm [远程仓库名] (git remote rm origin 删除远程仓储)
git push -u [远程仓库名] [分支名] (把本地库的内容推送到远程 git push -u origin master 第一次推送master分支时,加上了-u
参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,当然,在
以后的推送或者拉取时就可以简化命令了。)
git push [远程仓库名] [分支名] (从现在起,只要本地作了提交,就可以通过命令:$ git push origin master 提交)
git clone是把整个git项目拷贝下来,包括里面的日志信息,git项目里的分支,你也可以直接切换、使用里面的分支等等
git pull相当于git fetch和git merge。其意思是先从远程下载git项目里的文件,然后将文件与本地的分支进行merge。
git remote -v 查看远程仓储名称(分支)
git branch [分支名称](创建新的分支)
git branch (查看当前所在的分支)
git branch -d [分支名称] (删除分支)
git checkout [分支名称] (切换到不同分支)
git checkout -b [分支名称] (创建并切换到不同的分支)
git merge [分支名称] (合并指定分支到当前分支)

####添加上游分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
给fork配置远程库
使用 git remote -v 查看远程状态

确定一个将被同步给 fork 远程的上游仓库
git remote add upstream git [git路径]

再次 git remote -v 查看状态确认是否配置成功。
同步fork,从上游仓库 fetch 分支和提交点,提交给本地 master,并会被存储在一个本地分支 upstream/master
git fetch upstream

切换到本地主分支(如果不在的话)
git checkout master

把 upstream/master 分支合并到本地 master 上,这样就完成了同步,并且不会丢掉本地修改的内容。
git merge upstream/master

如果想更新到 GitHub 的 fork 上,直接
git push origin master 就好了。