git 备忘录

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

(9)git 找回git stash clear误删除的代码, 并恢复

https://www.cnblogs.com/lwh-note/p/13398655.html

(10)git如何跨分支查找某个commit所属分支?

git branch --contains CommitID
#查远程所有分支
git branch -r --contains CommitID
#查本地和远程的所有分支
git branch -a --contains CommitID
原文地址:https://www.cnblogs.com/fyusac/p/14846723.html