笔记-git常用命令

120 阅读4分钟

初始化操作

初始化一个新的git仓库

git init

初始化一个新的git仓库,并为其添加名称

git init <项目名称>

克隆远程仓库到本地

git clone <项目地址>

克隆远程仓库到本地指定目录

git clone <项目地址> <本地目录>

克隆远程仓库指定分支,默认是master分支

git clone <项目地址> -b <分支名称>

克隆远程仓库指定分支(默认是master分支),到本地指定目录

git clone <项目地址> -b <分支名称> <本地目录>

配置操作

获取config信息

git config --list

设置提交代码时的用户名和邮箱

git config [--global] user.name "xxx"
git config [--global] user.email "xxx@xx.com"

文件操作

添加指定文件到暂存区

git add <文件名>

添加指定目录到暂存区,包括子目录

git add <文件目录名>

添加当前目录下的所有文件到暂存区

git add .

移除跟踪指定的文件,并从本地仓库的文件夹中删除

git rm <文件路径>

移除跟踪指定的文件夹,并从本地仓库的文件夹中删除

git rm -r <文件夹路径>

移除跟踪指定的文件,在本地仓库的文件夹中保留该文件

git rm --cached <文件路径>

提交操作

把暂存区中的文件提交到本地仓库

git commit

把暂存区中的文件提交到本地仓库并添加描述信息

git commit -m "描述信息"

把所有修改、已删除的文件提交到本地仓库中,不包括未被本库跟踪的文件,等同于先调用了“git add -u”

git commit -a -m "描述信息"

使用一次新的提交,替代上一次的提交,如果代码没有任何变化,则用来改写上一次提交的描述信息

git commit --amend -m "描述信息"

远程仓库操作

列出已经存在的远程仓库

git remote

列出远程仓库的详细信息

git remote -v

添加远程仓库

git add remote <远程仓库的URL地址>

修改远程仓库的别名

git remote rename <远程仓库的别名> <新的别名>

删除指定名称的远程仓库

git remote remove <远程仓库的别名>

修改远程仓库的url地址

git remote set-url <远程仓库的别名> <新的远程仓库的地址>

远程同步操作

将远程仓库所有分支的最新版本全部取回本地

git fetch <远程仓库的地址>

将远程仓库的指定分支的最新版本取回本地

git fetch <远程仓库的地址> <分支名>

从远程仓库获取最新的更改并将其合并到本地分支

git pull

将当前分支推送到指定的远程分支

git push <远程仓库的地址> <分支名>

将所有分支推送到远程

git push --all

把指定的分支合并到当前所在的分支下

git merge <分支名称>

分支操作

列出本地的所有分支

git branch

列出本地的所有分支,并显示最后一次提交

git branch -v

切换到已存在的指定分支

git checkout <分支名称>

新建一个分支,并切换到该分支

git checkout -b <分支名>

新建一个新分支

git branch <分支名>

修改分支名称,如果不指定原分支名则为当前所在分支

git branch -m [<原分支名>] <新的分支名称>

强制修改分支名称

git branch -M [<原分支名>] <新的分支名称>

删除指定的本地分支

git branch -d <分支名称>

强制删除指定的本地分支

git branch -D <分支名称>

差异比较操作

比较单签文件和暂存区中文件的差异,显示没有暂存起来的更改

git diff

比较暂存区中的文件和上次提交时的差异

git diff --cached
git diff --staged

比较当前文件和上次提交时的差异

git diff HEAD

查看从指定的版本之后改动的内容

git diff <commit ID>

比较两个分支之间的差异

git diff <分支名称1> <分支名称2>

还原操作

重置暂存区,但文件不受影响,相当于将用"git add"命令跟心到暂存区的内容撤出暂存区,可以指定文件,没有指定commit ID 则默认为当前HEAD

git reset [<文件路径>]
git reset --mixed [<文件路径>]

将HEAD的指向改变,撤销到指定的提交记录,文件未修改

git reset <commit ID>
git rest --mixed <commit ID>

将HEAD的指向改变,撤销到指定的提交记录,文件未修改,相当于调用"git reset --mixed"命令后又做了一次"git add"

git reset --soft <commit ID>

将HEAD的指向改变,撤销到指定的提交记录,文件也修改

git reset --hard <commit ID>