Git
本笔记是跟距廖雪峰的Git网站写的学习笔记
Git安装和初始化
|
|
More info: 注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
创建版本库
- 首先,选择一个合适的地方,创建一个空目录1234$ mkdir learngit$ cd learngit$ pwd/Users/michael/learngit
More info:
- pwd命令用于显示当前目录。在我的电脑上,这个仓库位于/Users/michael/learngit
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
通过git init命令把这个目录变成Git可以管理的仓库:
12$ git initInitialized empty Git repository in /Users/michael/learngit/.git/编写一个readme.txt文件(一定要放到learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。)
12Git is a version control system.Git is free software.用命令git add告诉Git,把文件添加到仓库
1$ git add readme.txt用命令git commit告诉Git,把文件提交到仓库
1234$ git commit -m "wrote a readme file"[master (root-commit) cb926e7] wrote a readme file1 file changed, 2 insertions(+)create mode 100644 readme.txt
more info
- 简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
6.为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:123$ git add file1.txt$ git add file2.txt file3.txt$ git commit -m "add 3 files."
时光机穿梭
运行git status命令:git status命令可以让我们时刻掌握仓库当前的状态,下面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
123456789$ 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: readme.txt#no changes added to commit (use "git add" and/or "git commit -a")运行git diff命令:git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到,我们在第一行添加了一个“distributed”单词。
123456789$ git diff readme.txtdiff --git a/readme.txt b/readme.txtindex 46d49bf..9247db6 100644--- a/readme.txt+++ b/readme.txt@@ -1,2 +1,2 @@-Git is a version control system.+Git is a distributed version control system.Git is free software.提交
1$ git add readme.txt
同样没有任何输出。在执行第二步git commit之前,我们再运行git status看看当前仓库的状态:
1234567$ git status# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: readme.txt#git status告诉我们,将要被提交的修改包括readme.txt,下一步,就可以放心地提交了
123$ git commit -m "add distributed"[master ea34578] add distributed1 file changed, 1 insertion(+), 1 deletion(-)提交后,我们再用git status命令看看仓库的当前状态
123$ git status# On branch masternothing to commit (working directory clean)
Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的。
版本回退
|
|
撤销修改
|
|
文件删除
|
|
添加远程仓库
1、登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库
2、把本地库的所有内容推送到远程库上
- 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
- 从现在起,只要本地作了提交,就可以通过命令1$ git push origin master
从远程库克隆
1、用命令git clone克隆一个本地库
分支管理
1、创建与合并分支
2、解决冲突
3、bug分支
4、feature分支
5、多人协作
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。
6、标签管理
将项目推送到github pages
查看地址:用户名.github.io/项目名/
eg: jolylai.github.io/gallery-by-react/