- 远程仓库已经删除的分支,本地还有的情况下, 如下解决:
使用命令 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 第一个字母小写 结尾不加句号(.)