2020-01-19

git 常用命令

  1. 远程仓库已经删除的分支,本地还有的情况下, 如下解决:

使用命令 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,你可以使用*代替。
 subject
 subject是 commit 目的的简短描述,不超过50个字符。
 其他注意事项:
 以动词开头,使用第一人称现在时,比如change,而不是changed或changes
 第一个字母小写
 结尾不加句号(.)

发表回复

Your email address will not be published. Required fields are marked *