1、基本命令
1) 配置版本库
git config--global user.name "<用户名>"
git config--global user.email <email>
2) 克隆版本库
git clone <版本库名>
git clone <版本库名> <目录名>
3) 新建版本库
git init #在当前目录新建一个版本库
git init <目录名> #新建一个目录,并将其初始化为一个版本库
4) 更新版本库到最新版本
git pull
5) 查看工作区状态
git status
6) 添加工作区文件到暂存区
git add <文件名> #添加工作区的文件到暂存区
git add <目录名> #添加工作区的目录及其子目录到暂存区
git add . #添加工作区所有修改过的文件到暂存区
7) 提交暂存区文件到版本库
git commit -m "注释" #提交暂存区的文件到版本库
git commit -a #提交工作区自上次commit之后的所有变化到版本库
git commit –am "注释":git add和git commit –m "注释"的结合,确保所有变化都要提交才可以用,只需部分提交请用git add和git commit –m "注释"
git commit --amend -m "新注释":使用新的一次提交替代上一次提交。若代码没有新变化,则用于改写注释
git commit --amend <文件名1> <文件名2>:重做上一次commit,并包括指定文件的新变化
注意:git ci 是 git commit的别名
8) 推送到远程库
git push的一般形式为:git push <远程主机名> <本地分支名> <远程分支名>。
git push origin master:若远程分支名省略,如git push origin master,则表示将本地分支推送到与之存在追踪关系的远程分支(通常二者同名),若该远程分支不存在,则会新建(对新建远程仓库的第一次推送,需要指定主分支名master,也可以设置-u参数);
git push origin:若当前分支和远程分支存在追踪关系,则本地分支和远程分支都可以省略,如git push origin,表示将当前分支推送到origin主机的对应分支;
git push:若当前分支只有一个远程分支,那么主机名都可以省略,如git push,默认推送当前分支。
git push –u origin local:若当前的分支和多个主机存在追踪关系,则可以使用-u参数指定一个默认主机,这样后面就可以直接使用git push而不带任何参数。
9) 查看代码改动
git diff #查看工作区与暂存区的所有文件差异
git diff <文件名> #查看工作区与暂存区的指定文件差异
git diff --cached #查看暂存区与最后一次本地提交的文件差异
git diff HEAD #查看工作区与最后一次本地提交的文件差异
git diff origin #查看工作区与版本库原始版本比较
10) 查看提交记录
git log #查看默认格式的提交记录
git log -5 #查看最近5条提交记录
git log -p #查看提交记录并显示代码改动内容
git log -p --author=<作者名> #查看某作者的提交记录并显示代码改动内容
git log --since=<起始时间> --until=<截止时间> #查看某段时间的提交
git log --name-only #只显示文件名
git log --pretty=oneline #只显示一行
git log --pretty=format:%h:%s #自定义格式
git log --graph #图形化查看
git log --stat #查看修改文件统计
11) 替换/撤销操作
git checkout . #恢复暂存区的所有文件到工作区
git checkout <文件名> #恢复暂存区的指定文件到工作区
git checkout head <文件名> #用head指向的版本库替换暂存区和工作区的文件
git reset <文件名> #将暂存区中的指定文件回退到工作区
git reset HEAD <文件名> #将暂存区中的指定文件回退到工作区
git reset --hard #重置暂存区与工作区,与上一次commit保持一致
git co -- <文件名或目录名> #抛弃工作区的修改,还原指定文件或文件夹为当前版本库中的状态。
12) 文件操作
git rm <文件名> #删除版本库的文件,本地也不再使用
git rm --cached <文件名> #删除删除版本库的文件,本地还需要再使用,只是该文件不再受版本控制
git mv <文件名1> <文件名2> #移动或重命名文件
13) 查看命令帮助
git help <命令名>
14) 远程管理
git remote add me ssh://git@git.myGit.com/myGit.git #添加远程主机名和主机地址
git remote set-url origin ssh://git@git.myGit.com/myGit.git #设置远程主机名和主机地址
git remote –v:查看所有远程主机
2、分支和合并命令
1) 创建分支
git branch dev #方法1:直接从当前分支创建dev分支
git checkout -b dev #方法2:从当前分支创建dev分支,并切换到dev分支
git co –b dev:#方法3:从当前分支创建dev分支,并切换到dev分支
git checkout -b dev master #方法4:从master分支创建dev分支,并切换到dev分支
2) 切换分支
git checkout dev #切换到dev分支
git co dev:切换到dev分支
git checkout - # 切换到上一个分支
3) 分支合并
git merge dev #合并dev分支到当前分支,使当前分支拥有dev分支的改动
git merge dev --squash #合并dev分支到当前分支,但将分支上的提交压缩,然后手工提交变成一次提交。
git merge origin/master #合并远程的master分支到当前分支
4) 变基分支
git rebase master #将当前分支的修改重新变基到master分支上
git rebase --on-to <new_base> <current_base> #将当前分支在<current_base>基础上的修改变基到<new_base>分支上
5) 分支管理
git branch #查看所有的本地分支,带*号的是当前所在分支
git branch -r #查看所有的远程分支
git branch -a #查看所有的本地分支和远程分支,带*号的是当前所在分支
git branch -d dev #删除dev分支
git branch -D dev #强制删除dev分支
git push origin --delete rem #删除远程rem分支
git push origin :rem #将远程分支rem删除
git branch --merged #查看与当前分支合并过的分支,只要合并过的分支即使删掉也不用担心
git branch --no-merged #查看与当前分支没有合并过的分支