Git常见知识

264 阅读2分钟

1. git diff

显示工作区、暂存区、历史区之间的不同之处

git diff 分支名         //工作区和历史区比较
git diff --cached       //暂存区和历史区比较
git diff                //工作区和暂存区比较(不带任何选项的情况下,
//就是显示暂存区与工作区之间的不同之处)

git diff master         //工作区和历史区去比

2. 撤销

没有提交到暂存区的时候

git checkout .        //从暂存区中将工作区内容覆盖掉
git checkout 文件名   //覆盖某个文件
cat 1.txt             //查看

如果提交到暂存区,那只能在暂存区里往上回滚一次,(只能往上回滚一次),然后 用git checkout . , 将工作区内容覆盖。

git add .
git reset HEAD 文件名    //在暂存区,往上回滚一次。也就是把这一次的提交移除暂存区
git checkout .           //覆盖工作区所有文件
history > 2.txt          //将提交记录写到2.txt里面

已经被提交到历史区了,只能在历史区里,往上找其他版本,先回滚到其他版本(靠的是版本号),并且还能回来。

git commit -m 'third'       //文件需要提交过一次,版本号"22b3cb5"
git reset --hard e1ecf986   //--hard是坚决回滚。 现在是回滚到"e1ecf986"这个版本
git reflog                  //可以打印所有的日志(里面可以知道所有版本号)
git reset --hard 22b3cb5    //又切回来了

git reset --hard 版本号      //回滚历史版本
git reset --hard HEAD^      //往上走一次

3. 分支

假如有甲乙两人,甲一直在master主干上写代码,乙写的代码,也需要合并到master主干上去。

git branch            // 查看目前有几个分支,*代表当前就在这个分支上
git branch dev        // 创建dev分支
git checkout dev      // 切到dev分支上
git checkout master   // 再回到master分支上

git branch -D dev     // 删除dev分支, 
// -D是delete,删除分支时当前用户不能在当前要删除的分支上

在dev分支下提交

git checkout dev
git add .
git reset HEAD .           // 在暂存区回到上一级

git commit -m 'add 1.js'   // 和master就没关系了。 只有dev分支上有 1.js

怎么合并

git checkout master
git merge dev             // 把dev分支合并到master

git merge 分支名           // 要合谁,就写哪个分支名

总结:先创建主干,在主干的基础上添加一个分支,在分支上进行提交,切换到主干合并分支。

4. 暂存(不常用)

如果,分支有更改不能直接切换,可以提交更改或者暂存更改,

git stash              // 暂存文件
git stash pop          // 还原暂存的内容