git常用命令

初始化

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 dest

初始化远程仓库

git 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· 查看某个命令的帮助,不过是英文的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值