Git学习记录——基本操作
1、启动Git Bash,输入姓名及邮箱
点击鼠标右键>【options…】->【Text】->【Local】->zh_CN
【Character set】->【utf-8】,最后点击apply
git config --global user.name "leoric"
git config --global user.email "dingxiangan@hotmail.com"
#Win Git Bash 启用 http/https 协议时设置。
git config --global credential.helper wincred
#解决 Windows Git Bash、Linux 下的中文转码问题;
git config --global core.quotepath false
#设置大小写敏感,保持 Mac/Win/Linux一致性;
#在目录名大小写修改时,git可正常提交;
git config --global core.ignorecase false
#为了代码 log 易读,请使用 rebase
git config --global pull.rebase true
git config --global branch.autoSetupRebase always
2、创建本地仓库文件夹,我打算放到E盘
#进入e:/GitRepository
cd e:\
cd GitRepository/
pwd #查看当前工作目录路径
mkdir learnGit #创建learnGit文件夹
ls #产看当前目录下文件
#若是创建错误,可删除learnGit文件夹
#-r表示向下无线递归
#-f表示强制删除
rm -rf learnGit
3、通过git init命令把这个目录变成Git可以管理的仓库
cd learnGit
git init #初始化仓库
#Initialized empty Git repository in E:/GitRepository/learnGit/.git/
#显示所有目录
#-a即所有目录all
ls -a
4、在learnGit文件夹中创建需要版本控制的文件,假设是learnGit01.txt,文件编码utf-8
5、向git添加文档并提交
git add learnGit01.txt
git commit -m "-m是说明,这是learnGit01.txt版本1"
[master (root-commit) d3c11d6] -m是说明,这是learnGit01.txt版本1
1 file changed, 2 insertions(+)
create mode 100644 learnGit01.txt
6、查看仓库当前状态
$ git status
On branch master
nothing to commit, working tree clean
7、我们现在修改learnGit01.txt
8、再次查看仓库当前状态,可以看到上次修改没有提交。
$ 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: learnGit01.txt
```
no changes added to commit (use "git add" and/or "git commit -a")
9、查看修改
$ git diff learnGit01.txt
diff --git a/learnGit01.txt b/learnGit01.txt
index d8036c1..18524f1 100644
--- a/learnGit01.txt
+++ b/learnGit01.txt
@@ -1,2 +1,3 @@
Git is a version control system.
-Git is free software.
\ No newline at end of file
+Git is free software.
+来吧,版本2,看看git能不能用。
\ No newline at end of file
10、添加需要修改的文档,并提交
git add learnGit01.txt
git commit -m "这是版本2的说明"
[master 9d2f8fe] 这是版本2的说明
1 file changed, 2 insertions(+), 1 deletion(-)
11、再次查看仓库状态
$ git status
On branch master
nothing to commit, working tree clean
12、查看修改日志
$ git log
commit 9d2f8fe1b027254a41c9ae928aa8f3a4bfeff0ea (HEAD -> master)
Author: leoric <dingxiangan@hotmail.com>
Date: Tue May 28 16:54:58 2019 +0800
这是版本2的说明
commit d3c11d651dad5b39073096f1c8798d5778ff8a92
Author: leoric <dingxiangan@hotmail.com>
Date: Tue May 28 16:25:43 2019 +0800
-m是说明,这是learnGit01.txt版本1
13、查看修改日志精简版,其中前面是sha1计算出的版本id
$ git log --pretty=oneline
9d2f8fe1b027254a41c9ae928aa8f3a4bfeff0ea (HEAD -> master) 这是版本2的说明
d3c11d651dad5b39073096f1c8798d5778ff8a92 -m是说明,这是learnGit01.txt版本1
14、查看learnGit01.txt
$ cat learnGit01.txt
Git is a version control system.
Git is free software.
来吧,版本2,看看git能不能用。
15、版本回退
#HEAD^是上一个版本,HEAD^^是上上个版本
git reset --hard HEAD^
HEAD is now at d3c11d6 -m是说明,这是learnGit01.txt版本1
#可以看到回退成功了
cat learnGit01.txt
Git is a version control system.
Git is free software.
16、我反悔了,我不要回退了,git reflog记录了操作的每条记录
#查看操作记录
$ git reflog
d3c11d6 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
9d2f8fe HEAD@{1}: commit: 这是版本2的说明
d3c11d6 (HEAD -> master) HEAD@{2}: commit (initial): -m是说明,这是learnGit01.txt版本1
#通过commit id回退到指定版本
$ git reset --hard 9d2f8
HEAD is now at 9d2f8fe 这是版本2的说明
#查看内容
$ cat learnGit01.txt
Git is a version control system.
Git is free software.
来吧,版本2,看看git能不能用。