今天学习Git这个版本管理工具,学习地址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
现将笔记整理发布:
git命令总结
----------基础-------------------
1 $ git config --global user.name "fflin" //关联用户名
2 $ git config --global user.email "13521764775@163.com" //关联邮箱
3 $ mkdir fflindemo //创建版本库
4 $ cd fflindemo //进入版本库
5 $ pwd //显示当前目录
6 $ git init //初始化仓库
显示 Initialized empty Git repository in C:/Users/Administrator/fflindemo/.git/
其中.git是Git用来跟踪管理版本库的,不要手动修改
7 $ git add readme.txt 把文件放入仓库目录里,使用这个命令告诉Git,实际上是把文件放到了Git的暂存区(stage)
8 $ git commit -m "add a readme file" 把文件提交到Git
提交成功:
[master (root-commit) f937b08] add a readme file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 readme.txt
9 $ 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")
10 $ git diff readme.txt 查看被修改的文件都改了什么内容
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index e69de29..8993a63 100644
--- a/readme.txt
+++ b/readme.txt
@@ -0,0 +1 @@
+hello Git
11 $ git log 查看提交的历史记录
commit b469255efc0c5864c483af7701bfa2f4dbae97ac
Author: fflin <13521764775@163.com>
Date: Wed Mar 15 09:54:08 2017 +0800
文件增加一行文本
commit f937b08f902c9b389c4063a56cd4b16c3b9cd2a2
Author: fflin <13521764775@163.com>
Date: Wed Mar 15 09:47:09 2017 +0800
add a readme file
12 $ git log --pretty=oneline //以一行的形式来查看git提交日志
b469255efc0c5864c483af7701bfa2f4dbae97ac 文件增加一行文本
f937b08f902c9b389c4063a56cd4b16c3b9cd2a2 add a readme file
13 $ git reset --hard HEAD //回退到上一个版本
HEAD is now at f937b08 add a readme file
上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
14 $ git reflog 显示每一次指令
b469255 HEAD@{0}: reset: moving to b469255
f937b08 HEAD@{1}: reset: moving to HEAD
f937b08 HEAD@{2}: reset: moving to HEAD^
b469255 HEAD@{3}: commit: 文件增加一行文本
f937b08 HEAD@{4}: commit (initial): add a readme file
15 $ git checkout -- readme.txt 可以丢弃对工作区的修改,删除掉工作区文件新添加的部分,注意这里是“--”
16 $ git reset HEAD readme.txt 可以撤销对暂存区的修改,撤销已经add到暂存区的文件,使文件回到工作区,然后使用第15条指令,撤销工作区的修改
17 $ rm test.txt 删除文件
18 $ git rm tesr.txt 确定删除文件
rm 'tesr.txt'
19 $ git checkout -- test.txt 撤销删除文件
20 $ ssh-keygen -t rsa -C "13521764775@163.com" 创建SSH Key,创建完成会在“C:\Users\Administrator\.ssh”目录下生成两个文件,一个公钥一个私钥
-------------------------分支---------------------------------
21 $ git checkout -b dev 创建dev分支,然后切换到该分支
Switched to a new branch 'dev'
$ git branch dev 创建分支
$ git checkout dev 切换分支
22 $ git branch 列出所有分支,在当前分支前加了"*"
* dev
master
23 在当前分支(dev)上修改了readme.txt文本内容并执行add 和 commit的操作后
$ git checkout master 切换到master分支,再打开文件夹查看readme.txt,发现修改后的内容并没有出现
24 $ git merge dev 合并指定分支到当前分支,合并后,再查看readme.txt文件,发现已经出现了刚才修改的内容
25 $ git branch -d dev 合并后内容都再当前分支了,就可以删除dev分支
26 分支冲突强行合并时,文件内容
hello Git
添加log
添加了dev 分支
<<<<<<< HEAD
添加了feature1分支,master
=======
添加了feature分支
>>>>>>> feature1
git以<<<<<<<< ====== >>>>>>>>>>来标记不同的分支内容,
修改后,执行add和commit的操作
27 $ git log --graph --pretty=oneline --abbrev-commit 查看分支的合并情况
28 $ git stash 开发过程中会遇到一个功能未完善或者某个逻辑未写完时,有需要处理某个Bug,这时用stash命令把当前的工作区储藏起来,修复完Bug后再继续工作
Saved working directory and index state WIP on master: dbfe060 处理了冲突
HEAD is now at dbfe060 处理了冲突
Administrator@PC-179 MINGW64 ~/fflinDemo (master)
$ git status
On branch master
nothing to commit, working tree clean
29 $ git stash pop 恢复储藏的文件,回到工作现场
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")
Dropped refs/stash@{0} (0733938ec2cd86631700661319a64a298874dd9a)
-------------远程-----------------
30 $ git remote -v 查看远程库信息
origin git@github.com.fflin/fflinDemo.git (fetch)
origin git@github.com.fflin/fflinDemo.git (push)
--------------标签----------------------.
31 $ git tag v1.0 创建标签
32 $ git tag 查看所有标签
33 $ git tag v0.9 a6641b5 为未打标签的提交增加标签
34 $ git tag -a v0.1 -m "第一个文件" f937b08 创建带有说明的标签,-a代表标签名,-m代表说明文本
35 $ git show v0.1 展示带有说明的标签的提交
tag v0.1
Tagger: fflin <13521764775@163.com>
Date: Wed Mar 15 14:10:09 2017 +0800
第一个文件
commit f937b08f902c9b389c4063a56cd4b16c3b9cd2a2
Author: fflin <13521764775@163.com>
Date: Wed Mar 15 09:47:09 2017 +0800
add a readme file
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..e69de29
36 $ git tag -d v0.9 删除错误标签
Deleted tag 'v0.9' (was a6641b5)