[关闭]
@qidiandasheng 2020-12-10T07:44:43.000000Z 字数 2484 阅读 1531

git的使用

使用工具


取消修改,恢复版本

取消对单个文件的修改

这里指未commit的文件

  1. git checkout -- <file>

取消所有未提交的修改

  1. git clean -xdf
  2. or
  3. git checkout .

撤销git commit(未push)

暂存到stash

  1. git stash
  2. //恢复
  3. git stash pop

回滚

Revert 撤销一个提交的同时会创建一个新的提交。这是一个安全的方法,因为它不会重写提交历史。

比如下面的这个例子的提交,如果我们不想要test1的这次提交了,上面我说过用git reset --hard test_commit_id,但这是在test1这次提交未push的情况下。
如果test1这次提交已经push的话就应该使用git revert test1_commit_id,这样的话代码就会把test1这次的代码修改进行撤销并重新生成一次commit,这样的话test1的这次commit还是存在于工作树上的,保持了工作树的干净。

  1. commit a5febeebf141dbd9a022dfe96a46cad9d474a5ad
  2. Author: zhengqidian <zhengqidian@dasheng.com>
  3. Date: Mon Sep 18 23:07:04 2017 +0800
  4. test1
  5. commit 3a2a9a3f3fd56ec0ebe2ada274d127b3ec9dcb17
  6. Author: zhengqidian <zhengqidian@dasheng.com>
  7. Date: Mon Sep 18 22:57:47 2017 +0800
  8. test

git revert a5febeebf141dbd9a022dfe96a46cad9d474a5ad
回滚之后git log如下面所示:

  1. commit b80d6e00853f386159aa4a17ab40d9d375ad71d0
  2. Author: zhengqidian <zhengqidian@dasheng.com>
  3. Date: Mon Sep 18 23:37:00 2017 +0800
  4. Revert "test1"
  5. This reverts commit a5febeebf141dbd9a022dfe96a46cad9d474a5ad.
  6. commit a5febeebf141dbd9a022dfe96a46cad9d474a5ad
  7. Author: zhengqidian <zhengqidian@dasheng.com>
  8. Date: Mon Sep 18 23:07:04 2017 +0800
  9. test1
  10. commit 3a2a9a3f3fd56ec0ebe2ada274d127b3ec9dcb17
  11. Author: zhengqidian <zhengqidian@dasheng.com>
  12. Date: Mon Sep 18 22:57:47 2017 +0800
  13. test

回滚中间很大一部分commit,其中有merge commit

回滚

git reset --hard 4
git reset --soft 8
git commit -m 'Reverted 5 6 7 8'

其实楼主怕的是丢失提交记录,而不是使用 reset rebase 命令

查看当前分支是基于哪个分支创建的

  1. git reflog show <branchName>

检查本地的代码修改情况

git diff 可以查看当前没有add 的内容修改(不在缓冲区的文件变化)

git diff --cached查看已经add但没有commit 的改动(在缓冲区的文件变化)

git diff HEAD 是上面两条命令的合并

查看未git push到远程代码库的git commit

git status 只能查看未传送提交的次数

git cherry -v 只能查看未传送提交的描述/说明

git log master ^origin/master 则可以查看未传送提交的详细信息

输入用户名和密码

https协议push的时候需要输入用户名和密码问题:

  1. git config --global credential.helper store

然后你会在你本地生成一个文本,上边记录你的账号和密码。

pull 或者 push 一个大项目时报错

errno 56,那么应该是有大文件或者提交缓存方面的问题。而 errno 54 则不是这个问题。对于 56 错误的解决方式与网络上大部分文章的一致。都是增大缓存配置,比如下面就是配置提交缓存为 500M。

  1. git config http.postBuffer 524288000
  2. git config https.postBuffer 524288000

参考

git丢弃本地修改的所有文件

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注