git不常用命令整理
有什么不明白的地方,扫描右方二维码加我微信交流。
记录一些偶尔使用,但又记不住的命令,如下:
//合并分支
git checkout master //切换分支到master
git merge develop //将分支develop合并到当前分支
git merge --abort //放弃merge/回到merge之前的状态
//查看分支
git branch //查看本地分支
git branch -a //查看所有分支
git branch -r //查看远程分支
git branch newBranchName //创建新分支
//git reset HEAD的实质是重新指定HEAD到某个提交,以达到撤回commit的目的
//git add撤销,从暂存到未暂存(sourcetree)
git reset HEAD .
//撤回未推送的commit,被撤回的commit中的修改放入暂存中
git reset --soft HEAD^
//撤回未推送的commit,被撤回的commit中的修改不放入暂存中
git reset HEAD^
//撤回未推送的commit,并放弃commit中的所有修改
git reset --hard HEAD^
//修改未推送的commit注释
git commit --amend
//有一次我提交的内容已经合并到主分支,并通过测试,过了几天,不见了……于是呼追溯一下是谁干的好事,学到了以下姿势
//查询被删除的文件的历史记录
git log --all --full-history -- <path-to-file>
//恢复被git删除的文件
git checkout $commit~1 filename //$commit为被删除的那一次提交记录的id
//删除分支
git branch -d branchName //会在删除前检查merge状态(其与上游分支或者与head)
git branch -D branchName //是git branch --delete --force的简写,它会直接删除
//删除本地除master以外的所有分支
git branch | grep -w -v master | xargs git branch -D //-w为精确到master,-v为反选
//提交本地分支到远程并添加合并请求(适用于gitlab)
//merge_request
的相关参数可以在这里查看
git push origin %tempBranchName%:%tempBranchName% ^
--push-option merge_request.create ^
--push-option merge_request.target=%TargetBranchName% ^
--push-option merge_request.title="XXXXXXXXXXX" ^
--push-option merge_request.remove_source_branch ^
--push-option merge_request.assign="7"
//放弃本地修改
git checkout filename
//放弃本地所有修改
git checkout .
//删除当前目录下所有没有track过的文件和文件夹
//-x,无论在.gitignore中是否进行过设置,都删除
//-f,删除当前目录下没有track过的文件
//-d,删除当前目录下没有track过的文件夹
git clean -xdf
//-n,查看将要删除哪些文件,并不是真正的删除
git clean -n