- 远程仓库已经删除的分支,本地还有的情况下, 如下解决:
使用命令 git remote show origin
,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息
根据提示,使用 git remote prune origin
命令
git 速查表
------------------------------commit------------------------------ $ git status # 检查文件当前的状态 $ git add [文件名] # 追踪新的文件 $ git diff --cached # 若要看已经暂存起来的文件和上次提交时的快照之间的差异 $ git commit -m "Story 182: Fix benchmark" # 用一行命令提交更新 $ git commit -a -m 'added new benchmarks' # 跳过add命令直接提交 $ git rm --cached log.log # 从git仓库中删除不小心追踪的文件(用于gitignore之前追踪的文件) $ git mv file_from file_to # 移动文件/重命名文件 ------------------------------branch------------------------------ $ git branch # 查看分支 $ git branch -v # 查看各分支最后一个提交对象 $ git branch --merged # 查看已经merge过的分支 $ git branch --no-merged # 尚未merge的分支 $ git branch -d testing # 删除掉分支(如果还没有merge,会出现错误,-D可以强制删除) $ git branch -a # 查看所有分支(包括远程服务器) $ git push [远程仓库名] [本地分支名]:[远程分支名] # 推送本地分支到远程分支 # 如果本地分支名为空,则会直接删除远程分支名 $ git checkout -b iss53 # 新建分支并切换到新分支 =$ git branch iss53; git checkout iss53 $ git cherry-pick [id] # 合并某一个单独的commit ------------------------------log--------------------------------- $ git log --pretty=format:"%h - %an, %ar : %s" # 用特性的format查看log $ git log --graph # 用图表的形式显示git的合并历史 $ git log -n 5 # 最近5条(自定义)提交记录 ------------------------------config--------------------------------- $ git config --global user.name "John Doe" # 配置用户名 !仅第一次必须 $ git config --global user.email je@example.com # 配置电邮 !仅第一次必须 $ git config --list # 查看配置信息 $ git config --global alias.stash-unapply '!git stash show -p | git apply -R' # 设置别名 ------------------------------stash------------------------------ $ git stash # 储藏当前工作内容 $ git stash list # 查看所有已经储藏的内容 $ git stash apply [stash@{0}] # 在当前工作区应用储藏的内容,默认最新 $ git stash apply --index # 在当前工作区应用储藏的内容,并保持之前暂存区的状态 $ git stash drop # 删除一个储藏 $ git stash pop # 弹出一个储藏
附: Commit message 的格式 header 部分说明
其中,header 是必需的,body 和 footer 可以省略。 不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。 Header Header部分只有一行,包括三个字段:type
(必需)、scope
(可选)和subject
(必需)。 type 用于说明 commit 的类别,只允许使用下面7个标识。 feat:新功能(feature) fix:修补bug docs:文档(documentation) style: 格式(不影响代码运行的变动) refactor:重构(即不是新增功能,也不是修改bug的代码变动) test:增加测试 chore:构建过程或辅助工具的变动 scope scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。 例如在Angular
,可以是$location
,$browser
,$compile
,$rootScope
,ngHref
,ngClick
,ngView
等。 如果你的修改影响了不止一个scope
,你可以使用*
代替。 subjectsubject
是 commit 目的的简短描述,不超过50个字符。 其他注意事项: 以动词开头,使用第一人称现在时,比如change,而不是changed或changes 第一个字母小写 结尾不加句号(.)