git常用命令
参考文档:git-book
init
初始化仓库git init
clone
克隆远端仓库的内容到本地git clone https://github.com/xxx/xxx.git
add
作用:把文件加入git跟踪或把文件修改添加入暂存区或者在解决完冲突后标记为已解决。
将这个命令理解为“精确地将内容添加到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。
所有被add的文件在都会出现在下一次commit的内容中。
git add .
将当前目录及所有子目录下的文件添加入暂存区:git add .
git add <pathspec>
添加目录或文件到暂存区或添加跟踪git add xxx
config
作用:查看或修改git的配置
最常见的是配置项目的user.name,user.email,remote url等。
git的config有三个等级,分别为 –local, –global, –system。
local的生效范围最小,只在当前项目内生效,但是优先级最高。保存在每个项目的.git/config
下。
global的生效范围中等,在当前用户内生效,优先级中等。保存在C:\Users\LENOVO\.gitconfig
下。
system的生效范围最广,在当前计算机内生效,优先级最低。保存在安装目录下的etc\gitconfig
下。
所有的config操作都可以加上–local,–global,–system指定对哪个配置操作
另外,因为默认只有一个worktree,所以worktree和local的配置是一样的。如果创建了新的worktree,也可以使用–worktree。
git list
列出指定位置的配置:git list [location]
如果不加location则会列出当前位置能获取到的所有配置
常用配置项
git config [--local|--global|--system] user.name "xxxxx"
git config [--local|--global|--system] user.eamil "xxxxx@xx.com"
git core.autocrlf true
非常用配置项
git config [--local|--global|--system] core.editor vim
git config [--local|--global|--system] merge.tool vimdiff
添加删除自定义配置项
添加自定义配置项:git config [--local|--global|--system] --add group.key value
删除自定义配置项git config [--local|--global|--system] --unset group.key
branch
作用:分支的创建切换合并删除等操作
git branch
创建新分支:git branch <branchName>
all
查看所有远程分支和本地分支:git branch --all
delete
删除指定分支:git branch <-d|--delete> <branchName>
checkout
切换到指定分支:git checkout <branchName>
基于当前分支创建新分支并切换到新分支git checkout -b <branchName>
等同于git branch <branchName>
和git checkout <branchName>
的组合
基于指定分支创建新分支并切换到新分支:git checkout -b <baseBranch> <newBranch>
merge
merge命令需要注意方向,是把指定分支代码合入本分支
合并指定分支到本分支:git merge <branchName>
合并在合并完成后执行commit:git merge <branchName> --commit
终止合并:git merge --abort
合并冲突解决完毕:git merge --continue
或者git add .
和git commit -m "message"
合并指定的两个分支:git merge <branchName1> <branchName2>
指定合并branchName1
rebase
rebase命令注意方向,是把本分支变基到指定分支。
P.S.当本分支相对于指定分支有多个提交的话需要执行多次代码合并或解决冲突。而merge命令只需要执行一次。
git rebase <branchName>
可以把本分支变基到指定分支
终止变基:git rebase --abort
变基冲突解决完毕:git rebase --continue
不推荐用git add .
和git commit -m "message"
组合命令
如果这样做了可以用git rebase --skip
结束rebase进程。
stash
作用:贮藏当前暂存区和工作区的内容。贮藏的内容是可以跨分支使用的。
git stash
贮藏当前修改git stash
list
列出当前贮藏的所有内容git stash list
apply
应用指定的stash到当前分支,如果不指定stash默认是最近的一个。git stash apply [<stash>]
drop
移除指定的stash,如果不指定stash默认是最近的一个。git stash drop [<stash>]
pop
应用指定的stash并移除,如果不指定stash默认是最近的一个。git stash pop [<stash>]
stash branch
从贮藏创建一个新分支git stash branch <newBranchName>
commit
把暂存区的内容提交git commit -m "message"
修正上次的commit,可以修改文件,提交信息等:git commit --amend
reset
fetch
pull
push
pick
help
revert
丢弃未暂存内容
推荐网站
廖雪峰
可视化
推荐工具
idea sourcetree fork