1. 基本语法
- 添加文件到暂存区
命令 | 说明 |
---|---|
git add [file1] [file2] … | 添加一个或多个文件 |
git add . | 添加当前目录下的所有文件 |
git add [dir] | 添加指定目录 |
git add -A (git add –all) | 添加所有变动的文件 |
git add --help | 查看帮助 |
- 将暂存区内容添加到本地仓库
命令 | 说明 |
---|---|
git commit | 转至VIM输入message |
git commit -m [message] | 提交暂存区到本地仓库 |
git commit [file1] [file2] … -m [message] | 提交指定文件 |
git commit --amend | 追加提交,在merge前都可以追加 |
git commit --help | 查看帮助 |
- 版本回退
命令 | 说明 |
---|---|
git reset --hard HEAD^ | 回退到上一个版本 |
git checkout – file | 丢弃工作区的修改(未add) |
git reset HEAD <file> | 把暂存区的修改撤销(已add),再用上一条撤销工作区修改 |
git reset --hard HEAD^ | 回退到上一个版本,暂存区和工作区均恢复 - HEAD^^ 上两个 - HEAD^^^ 上三个 … - HEAD~n 上n个 |
git reset --hard commit_id | 回退值指定版本 |
- 推式至远程仓库
命令 | 说明 |
---|---|
git push <远程主机名> <本地分支名>:<远程分支名> (本地与远程同名可省略) | 将本地的分支版本上传到远程并合并, 例 git push origin dev 将本地dev推式到远程并合并dev |
git push origin HEAD:refs/for/dev | refs/for 意义在于提交代码到服务器之后是需要经过code review 之后才能进行merge |
- 从远程仓库拉取代码
命令 | 说明 |
---|---|
git pull <远程主机名> <远程分支名>:<本地分支名> (本地与远程同名可省略) | 从远程获取代码并合并本地的版本,例git pull origin dev 拉取远程的dev分支与本地dev分支合并 |
- 查看
命令 | 说明 |
---|---|
git log [–oneline] [–author] | 显示从最近到最远的提交日志 |
git blame <file> | 以列表形式查看指定文件的历史修改记录 |
git status | 查看当前仓库的状态 |
git status -s | 简短的输出结果 |
git status --help | 查看帮助 |
git diff [file] | 工作区 vs 暂存区 |
git diff HEAD | 工作区 vs 版本库 |
git diff --cached [file] | 暂存区 vs 版本库 |
git diff [first-branch]…[second-branch] | 显示两次commit之间的差异 |
git diff HEAD^ --name-only>files_list.txt | 显示与上一个版本的差异文件名 |
git diff HEAD^ --name-only | xargs -i cp {} ./abc | 比较出变动的文件并且拷贝到新的目录中,args中用 -i 把前面的内容用{}替代,-t 打印命令 |
git diff HEAD^ --name-only | xargs -t -i cp --parents {} ./abc | 比较出变动的文件并且拷贝到新的目录中(带路径) |
2. 远程仓库
命令 | 说明 |
---|---|
git init | 初始化仓库,用于在目录中创建新的 Git 仓库 |
git clone [url] | 拷贝一个 Git 仓库到本地 例 git clone git@192.168.45.4:/home/gitrepo/runoob.git |
git remote add [shortname] [url] | 关联一个远程库, 例git remote add origin git@server-name:path/repo-name.git |
git branch -u origin/dev | 本地分支与远程分支关联,用pull origin dev的话自动关联了 |
git branch -vv git remote show origin | 查看本地分支与远程分支关联 |
git push --delete origin dev | 删除远程dev分支 |
3. 分支管理
命令 | 说明 |
---|---|
git branch (branchname) | 创建分支 |
git checkout (branchname) | 切换分支 |
git checkout -b (branchname) | 创建并切换至分支 |
git branch -d (branchname) | 删除分支 |
git merge <name> | 合并分支,git merge dev 合并dev分支至当前分支 |
git branch | 查看所有本地分支 |
git branch -r | 查看remote分支 |
git branch -a | 查看所有分支,包括remote |
4. 标签管理
命令 | 说明 |
---|---|
git -a tag name -a 选项意为"创建一个带注解的标签" | 打一个新标签,会打开vi写备注 |
git tag -a name -m “xxxxx标签” | 打上标签并备注,不用打开vi |
git tag -a tagname commit_id | 提交后补打标签 |
git tag | 查看所有标签 |
参考: