git init //初始化本地仓库 .git
git status -sb -sb //显示当前所有文件的状态
git diff //查看更改,查看difference,显示的格式正是Unix通用的diff格式
git add 文件路径 //用来将变动添加到暂存区
git commit -m "信息" //用来正式提交变动,提交至 .git仓库 如果有新的变动,我们只需要依次执行 //git add xxx 和 git commit -m 'xxx' 两个命令即可
git log //查看变更历史
git reset --hard //重置暂存区与工作区,与上一次commit保持一致
git reset --hard [commitid] //重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定 //commit一致
//commitid使用git log --stat查看
平行世界
在平行世界B的你,刚刚把版本回退到了版本2,于是睡觉去啦,第二天发现版本3才是对的,可是使用git log已经查看不到commit信息了,怎么办?
git reflog //用来记录你的每一次命令,显示当前分支的最近几次提交
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout --file
场景2:当你不但改乱了工作区某个文件的内容,还添加了暂存区时,想丢弃修改,分两步,第一步用命令
git reset HEAD file
就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset --hard,不过前提是没有推送到远程仓库。
删除文件
git rm [file1] [file2] ... //删除工作区文件,并且将这次删除放入暂存区
另一种情况是删错了,因为本版库里还有,所以可以很轻松得把误删的文件恢复到最新版本:
git checkout -- test.txt
使用分支
$ git checkout -b [branch] //新建一个分支,并切换到该分支
$ git branch //命令会列出所有分支,当前分支前面会标一个*号。
$ git add .
$ git commit -m "提交分支branch"
$ git checkout master //切换回master分支
$ git merge [branch] //把branch分支合并到master分支
$ git branch -d branch //合并完成后删除branch分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>