git 常用命令
git add src/READ.txt 创建新文件
git branch -a 查看分支
git clean
-n 显示将要删除的文件和目录
-x 删除忽略文件已经对git来说不识别的文件
-d 删除未被添加到git的路径中的文件
-f 强制运行
git checkout master 进入分支
-b 会在本地新创建一个分支
git cherry -v 查看已经提交,但是未传送到远程代码库的commit提交
git cherry-pick 将已提交的代码提交到另一个分支
git commit
-m 注释说明
--amend 追加提交
git diff
--stat 统计文件的改动
git log
--author=authorname 按作者过滤提交记录
git pull
--rebase 同时会合并分支
git pull = git fetch + git merge FETCH_HEAD
git pull --rebase = git fetch + git rebase FETCH_HEAD
git rebase 合并提交 前提:不要通过rebase对任何已经提交到公共仓库中的commit进行修改(你自己一个人玩的分支除外)
git reflog 它会记录所有HEAD的历史,也就是说当你做reset,checkout等操作的时候,这些操作会被记录在reflog中
git reset git reset <选项> HEAD/快照ID<~>,其中<快照ID/HEAD> 默认是HEAD,~表示回退的版本数,也可以表达~N
--soft soft仅仅是改变HEAD指针的指向,实际上是撤销上一次commit,暂存区和工作区都没有改变
--mixd 默认选项,HEAD指针会指向上一个快照,然后将这个上个快照复制到暂存区,暂存区的内容会被覆盖,工作区不会改变。
--hard hard操作会改变HEAD指针指向上一个快照,同时将上一个快照的内容复制到暂存区和工作区,暂存区和工作区原先的内容会被覆盖.
https://blog.csdn.net/qq_40731414/article/details/87989256
git stash
+ apply 恢复暂时stash列表中的一个内容,但不会删除stash列表的内容
+ clear 删除所有缓存的stash
git status
遇到的问题:
(1)错误使用git reset hard
$ git log 查看提交记录
若这看起来我们是丢掉了我们第二次的提交,本地的修改也消失了,没有办法找回来了。
但是 reflog 会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会被记录在reflog中。
$ git reflog 会显示所有HEAD的历史
要找回我们第二commit,只需要做如下操作$git reset --hard 98abc5a(代表commit的Id)
再执行$git log 查看提交记录 ,显示找回丢失的记录
(2)git pull 错误提交,可执行git reset --mixd(默认,可不填) HEAD^/commitId
(3)git rebase 和 git merge的区别
merge操作会生成一个新的节点,之前的提交分开显示。而rebase操作不会生成新的节点,是将两个分支融合成一个线性的提交。
merge操作遇到冲突的时候,当前merge不能继续进行下去。手动修改冲突内容后,add 修改,commit 就可以了。而rebase 操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改add后执行git rebase –continue继续操作,或者git rebase –skip忽略冲突。
(4) git commit --amend
(5) git reset --rebase
(6)本地代码合并指定的commitId但不提交
git merge 043a7afdeb8bcdef2e74ee606b037f746b1a4dca --no-commit --no-ff 本地代码合并指定的commitId但不提交,没有参数--no-commit会生成一个新的commitid
(7)git合并多个commit
https://segmentfault.com/a/1190000017337900
https://blog.csdn.net/u013276277/article/details/82470177
(8)找回pop掉的stash
git fsck
https://www.imooc.com/article/49614