wls-branch
this is a git learning text process.
I hope I can use git to control all my experiments.
fighting!

first, mkdir a dir, then git init this dir. then you can add files, then you can commit.

1) 初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;
第二步,使用命令git commit,完成。
mkdir learngit
cd learngit
git init
touch readme
git add readme
git commit -m 'add a readme file'

2) 要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
change readme
git status
git diff
git add readme
git commit -m 'changed the file readme'


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

4) 暂存区是Git非常重要的概念,弄明白了暂存区,就弄明白了Git的很多操作到底干了什么
learngit就是一个工作区,而该工作目录下的.git才是git的版本库。其中.git下的index就是
暂存区,所有commit之前的操作比如add file等add的file基本都放在这个index里。很多操作
放在index中后,就可以一次性commit提交到我们的master这个分支里去。

5) Git是如何跟踪修改的,每次修改,如果不add到暂存区,那就不会加入到commit中。

6) 撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

7) 从版本库种删除文件
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,
但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
git rm licence
git commit -m 'delete licence from the git version contrl dir'