总结归纳在git操作过程中常用到的命令
一、新建本地分支:
git branch new_branch_name // 不切换分支
git checkout -b new_branch_name // 新建并切换到新分支
二、查看分支:
git branch // 查看本地分支
git branch -r // 查看远程分支
git branch -a // 查看所有分支
git branch -vv // 查看本地分支相关信息(与远程分支的关联情况)
三、切换分支:
git checkout branch_name
四、暂存、提交、撤回:
git add file_name // 暂存相应文件
git add -A // 暂存所有被修改的文件
git add -A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git commit -m '提交说明' // -m 为 --message的简写 ;没有-m将出来一个编辑页面来让你输入提交说明(没有说明不能提交)
git commit -o file_name -m '提交说明' // -o 为 --only的简写 只提交file_name的文件
git commit --amend // 无提交说明,将这次提交合并到上次的提交中,并可修改上传的提交说明(上次提交已push最好别用)
git reset file_name // 取消已经add 的暂存文件
git reset HEAD^ // 取消回退已经commit 但未push的版本 回退到未暂存状态(commit 的文件还在),并同时将已经add还未commit的文件也变为未暂存状态
git reset --soft HEAD^ // 取消回退已经commit 的指定版本 回退到暂存状态,不影响当前文件状态(未暂存还是未暂存,暂存文件还是暂存文件)
git reset --hard HEAD^ // 强制回退到相应提交的版本 除目前未add的文件,其他文件均丢失 回退后落后远程分支可以 git push -f 强制推送(git reset 命令不明确自己在干什么还是尽量慎用)
五、删除本地分支:
git branch -d branch_name // -d 为--delete 的简写;不能删除自己所在的分支,并且本分支不能有被commit待push的文件
git branch -D branch_name // 强制删除 即使有被commit待push的文件
六、本地分支关联远程分支:
建立关联:
git branch --set-upstream-to=branch_name // 建立与远程分支的联系 这儿branch_name 等同于 origin/branch_name
git branch -u origin/branch_name // -u 为 --set-upstream-to= 的简写
解除关联:
git branch --unset-upstream // 解除与远程仓库的关联
七、新建远程分支:
git push -u origin local_branch_name:remote_branch_name
// 1、提交本地local_branch_name分支到远程分支remote_branch_name
// 2、-u 参数是将本地分支与远程分支进行关联,没有此参数时,本地分支还需通过git branch -u origin/remote_branch_name 与远程分支关联(本地分支已有远程关联分支不想更改时不要加 -u 参数)
// 3、没有:remote_branch_name时默认远程分支和本地分支同名
八、删除远程分支:
git push origin :del_branch_name // 删除名为del_branch_name的远程分支
git push origin --delete del_branch_name // 同上--delete 等同于 :
九、更新本地远程分支信息:(远程分支已删除,但是在本地git branch -r 还能看见)
git remote show origin // 查看远程仓库的分支信息,就会看到一个分支的提示信息:过时 (使用 'git remote prune' 来移除)
git remote prune origin // 更新本地的远程分支信息