git branch -d/-D <分支名>
git commit -amend
# :wq! 保存退出
git rebase -i <commitID的parent>
# 在交互界面中进行如下操作
# 步骤一,选择要进行的操作
#:wq!
# 步骤二,进行操作
# :wq!
已经集成到团队分支中,不可进行这样的操作。
git rebase -i <commitID的parent>
# 在交互界面进行如下操作
# 步骤一,选择一个pick和多个squash
# : wq!
# 步骤二,新增一条commit message
# : wq!
git rebase -i <commitID的parent>
# 如果某个commit没有父commit,那么就选择该commit后,手动将它添加到交互界面中
# 将需要合并的commit剪切到一起,需要被合并的修改为squash,不变的依然是pick
# :wq!
git rebase --continue
# 修改commit信息
# :wq!
git diff --cached
git diff # 比较工作区和暂存区的所有文件
git diff -- <file> # 比较该文件在工作区和暂存区的差别
git reset HEAD #针对暂存区全部文件
git rest HEAD -- <file1> <file2># 针对暂存区中某个文件
git checkout # 针对工作区全部文件
git checkout -- <file> # 针对工作区某个文件
git reset --hard <commitID> # commitID之后的commit记录都会被删除
git diff <branch1> <branch2> # 比较两个分支全部文件的不同
git diff <commitID1> <cimmitID2>
git diff <branch1> <branch2> -- <file> # 比较两个分支中指定文件的不同
git diff <commitID1> <cimmitID2> -- <file>
git rm <file>
git stash # 将当前工作区中文件存入临时堆栈中
git stash list # 查看临时堆栈中内容
git stash apply # 复制临时堆栈的内容到工作区
git stash pop <stash序号> # 提取临时堆栈的内容到工作区,默认为顶部内容
空行不匹配任何文件,因此它可以作为可读性的分隔符。
以#开头的行作为注释。对于以哈希开头的模式,在第一个哈希前面加一个反斜杠(“\”)。
除非使用反斜杠(“\”)引用尾随空格,否则将忽略尾随空格。
可选前缀“!”否定了这种模式;之前模式排除的任何匹配文件将再次包含在内。如果排除该文件的父目录,则无法重新包含文件。出于性能原因,Git不会列出排除的目录,因此无论在何处定义,所包含文件的任何模式都不起作用。在第一个“! ”前放一个反斜杠(“\”)对于以文字“!”开头的模式,例如“\!important!.txt”。
如果模式以斜杠结尾,则为了以下描述的目的将其删除,但它只会找到与目录的匹配项。换句话说,foo /将匹配目录foo和它下面的路径,但是不匹配常规文件或符号链接foo(这与pathpec在Git中的工作方式一致)。
如果模式不包含斜杠/,Git将其视为shell glob模式,并检查相对于.gitignore文件位置的路径名匹配(相对于工作树的顶层,如果不是来自.gitignore)文件)。
否则,Git将模式视为shell glob:“*”匹配除“/”,“?”之外的任何内容。匹配除“/”之外的任何一个字符,“[]”匹配所选范围中的一个字符。有关更详细的说明,请参阅fnmatch(3)和FNM_PATHNAME标志。
前导斜杠与路径名的开头匹配。例如,“/*.c”匹配“cat-file.c”但不匹配“mozilla-sha1 / sha1.c”。
与完整路径名匹配的两个连续星号(“**”)可能具有特殊含义:
尾随“/”匹配内部的所有内容。例如,“abc/”匹配目录“abc”内的所有文件,相对于.gitignore文件的位置,具有无限深度。
斜杠后跟两个连续的星号,然后斜杠匹配零个或多个目录。例如,“a/**/b”匹配“a/b”,“a/x/b”,“a/x/y/b”等。
其他连续的星号被认为是常规星号,并且将根据先前的规则匹配。
git clone --bare <协议及仓库地址> # 不带工作区的裸仓库
git remote -v # 查看远端仓库
git remote add <remove name> <协议及仓库地址>
git push --set-upstream
常用协议 | 语法格式 | 说明 |
---|---|---|
本地协议1 | /path/to/repo.git | 哑协议 |
本地协议2 | file:///path/to/repo.git | 智能协议 |
http/https协议 | http(s)://git-server.com:port/path/to/repo.git | 平时接触到的都是智能协议 |
ssh协议 | user@git-server.com:path/to/repogit | 工作中最常用的智能协议 |