有什么不明白的地方,扫描右方二维码加我微信交流。
       

记录一些偶尔使用,但又记不住的命令,如下:

//合并分支
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

 

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注