git init 初始化一个文件夹为git仓库。
git clone 远程仓库地址 克隆一个远程仓库。
git add 文件名 提交一个文件到暂存区。
git add . 提交所有文件到暂存区。
git commit -m "提交信息" 用提交信息提交一次记录。
git commit 在git默认编辑器中编写提交信息并提交。
git commit -a 将所有跟踪过的文件提交。已跟踪的文件是指添加到暂存区并修改过的文件,新添加但并未添加到暂存区的文件不会被提交。
git commit --amend 修改上次提交,可以追加记录文件,重写提交记录等等。
git reset HEAD 文件名 从暂存区取消暂存一个文件。
git checkout -- 文件名 撤销对一个文件的修改操作,如果这个文件的修改没有保存到暂存区的话。
git rm 文件名 从git缓存区中移除并从工作目录中删除文件。如果不想删除只想从缓存区中移除的话可以添加--cached 选项。如果要删除的是一个已经在缓存区中并有修改或添加记录的话,需要使用-f 选项强制删除,这样做的目的是安全删除,因为不需要强制删除的文件都可以通过提交记录找回。
git mv 源文件名 目标文件名 移动或者重命名文件,文件必须是已经跟踪过(也就是处在暂存区)的文件。相当于以下三条命令的效果:
mv src dest
git rm src
git add destgit remote add origin 远程仓库地址 添加一个名字为origin 的远程仓库。
git remote remove origin 删除origin远程仓库。
git remote (-v) 查看远程仓库(以及远程仓库地址)。
git push origin master 将本地master分支推送到远程origin的master分支。
git pull 从远程仓库拉取分支并尝试合并,相当于fetch和merge操作。
git fetch 仅从远程仓库拉取分支。
要忽略的文件在.gitingore 文件中定义。忽略文件的格式如下:
* 空行或者注释行(#开头的行)会被忽略。
* / 开头表示项目根目录。
* / 结尾表示一个目录。
* ! 表示非。例如! *.cs 就是忽略所有的不是C#代码的文件。
* 使用glob模式定义的文件。
glob模式是指shell使用的简化版的正则表达式版本。规则如下: * *匹配0或多个字符; * [abcx]匹配括号中任意一个字符,在这里也就是a、b、c或者x。 * [0-9]表示匹配0-9的任何一个字符。 * ?只匹配一个字符。 * **两个连着的星号匹配任意目录。
git diff 查看当前文件和缓存区之间的差异。
git diff --cached 或者git diff --staged 查看已经暂存将要提交的文件更改。
git difftool --tool-help 查看可以安装使用的差异查看工具,以提供更高级的功能。
git branch 分支名 新建一个分支。
git branch (-vv) 查看所有分支(以及与远程分支的比较)。
git checkout 分支名 切换到一个已有的分支。
git checkout -b 分支名 新建并切换到一个新分支。
git branch -d 分支名 删除一个本地分支,如果该分支有未提交的内容,删除会失败,这时候需要-D 选项强制删除。
git push origin --delete 分支名 删除服务器的远程分支,一般不删除数据只删除指针直到垃圾回收。
git branch -u(--set-up-stream) 远程仓库名/远程分支名 用本地分支跟踪远程仓库上的分支,本地分支和远程分支不需要同名。
git stash 将当前的修改临时储藏起来,工作目录将变成干净的。
git stash list 显示已经储藏的所有记录。
git stash apply (储藏名字) 应用储藏,未指定则是最近的储藏。
git stach drop 储藏名字 删除某一个储藏。
git stash pop 应用一个储藏并删除它。
git stash --keep-index 储藏当前的文件,不包括已经通过git add命令暂存的文件。
git stash -u 储藏文件并包括未跟踪的文件。
git clean -f -d 确认清理工作目录中的未跟踪的文件和目录。可以将-f选项换成-n选项进行一次演习,来查看到底会删除什么文件。还可以用-x选项清理.gitignore文件中忽略的文件。
git tag 查看已有的标签。
git tag -l '匹配模式' 列出匹配的标签。
git tag -a 标签名 -m '提交信息' 增加一个附注标签。
git tag -a 标签名 提交校验值 在某次提交上打一个标签。
git tag 标签名 增加一个轻量级标签。
git push origin --tags 将所有标签推送到远程分支上。
git push origin 标签名 只推送某个标签到远程分支。
git merge 分支名 当一个分支合并到当前分支。
git merge --abort 退出合并,当合并出现冲突又无法解决时,可以使用该命令退出合并操作。
git rebase master dev 将dev分支在master上变基。使用此操作时要注意,只能对自己本地的私有分支进行变基操作,在合并到公共分支上。否则会打乱公有的提交记录,导致代码管理混乱。
git status 可以查看当前的状态。
git status -s 或者git status --short 查看当前状态的简略输出。
git配置文件有三级,第一级是系统配置,用–system标出;第二级是用户配置,用–global标出;第三级是项目配置,在当前项目文件夹中默认指定。每一级都会覆盖上一级的配置。
git config --list 列出所有属性。
git config --list --global(system) 列出全局(系统)属性。
git config --global 属性名 属性值 修改用户配置的属性值,如果不写的话就是修改当前项目的配置。
git config 属性名 查看某一项属性的值,也可以使用选项查看其他级别的配置。
git help 某个命令 `git 命令名 –help· 查看某个命令的帮助,不过是英文的。