![](https://s5-media.51cto.com/ost/pc/static/noavatar.gif)
回复
春节不停更,此文正在参加「星光计划-春节更帖活动」
众所周知Git是项目的代码管理工具,相比于其他的东西,Git算是我们日常工作或者学习中使用最多的一款工具,但是实际业务中使用的Git命令就听过的,除了最基本的Git命令,还有很多Git命令需要我们掌握,因此特此整理Git常用命令,以供参考
# local只针对某个仓库有效
git config --local --list
# global对当前用户所有仓库有效
git config --global --list
# system对系统所有登录的用户有效
git config --system --list
# local只针对某个仓库有效
git config --local user.name "[name]"
git config --local user.email "[email address]"
# global对当前用户所有仓库有效 推荐使用
git config --global user.name "[name]"
git config --global user.email "[email address]"
# system对系统所有登录的用户有效
git config --system user.name "[name]"
git config --system user.email "[email address]"
把已有项目初始化纳入git管理
cd gitTest
git init
将文件添加到暂存区
# 将工作空间下所有文件添加到暂存区(new,modifyed)新文件、修改后的文件
git add .
#将工作空间下所有文件添加到暂存区(new,modifyed,delete)新文件、修改后的文件、删除的文件
git add -A
#将工作空间下所有文件添加到暂存区(modifyed,delete)修改后的文件、删除的文件
git add -u
# 提交指定文件到暂存区
git add [fileName] [fileName]
将暂存区的文件提交到版本库
# 将暂存区的文件提交到版本库并添加注释
git commit -m <commit message>
# 跳过git add 命令,直接将工作区所有已跟踪的文件提交到版本库,未跟踪的(untracked)文件不能使用该命令
git commit -am <commit message>
查看工作目录和暂存区的状态
git status -s
查看所有的提交的历史记录
# 查看所有的提交的历史记录
git log --graph --oneline
# 查看指定文件的提交记录
git log [FileName]
# 查看所有分支的所有提交记录(包括commit和reset的操作)
git reflog
log的参数
参数 | 作用 |
---|---|
–graph | 绘制提交的线索的历史记录 |
–oneline | 输出时,只显示每条日志的第一行 |
-p | 会显示每次提交时改动的地方详情 |
–name-status | 显示每次提交对应的文件改动 |
–author [authorName] | 搜索指定人的提交记录 |
用于从工作区和索引中删除文件
# 删除暂存区文件的指定文件(本地工作区未删除)
git rm --cache [fileName]
# 删除暂存区和本地工作区的指定文件
git rm -f [fileName]
# 删除文件夹
git rm -r [dir]
回滚(本地仓库版本,远程不受影响)
# 回滚到add操作后状态/本地代码未回退
git reset --soft [commitID] [HEAD]
# 回滚到未add操作状态/本地代码未回退 (git reset默认状态)
git reset --mixed [commitID] [HEAD]
# 彻底回滚到指定版本/本地代码也回退
git reset --hard [commitID] [HEAD]
# 回退(远程仓库回退版本,会创建一个新的commit)
git revert [commitID][HEAD]
用于移动或重命名一个文件、目录或软连接
#正常用法
git mv [file] [newfile]
# 如果新的文件名已经存在,但还是要重命名它
git mv -f [file] [newfile]
分支操作
# 查看当前项目所有的分支
git branch -all
# 创建分支
git branch [branchName]
# 删除本地的分支
git branch -d dev
# 删除本地追踪
git branch --delete --remotes <remote>/<branch>
# 修改分支名称
git branch -m
切换分支
# 切换分支(没有目标分支会切换失败)
git checkout [branchName]
# 切换并创建分支(创建分支时会把当前分支内容复制到新分支 上)
git checkout -b [branchName]
查看当前分支与指定分支的差异详情
# 查看当前分支与指定分支的差异详情
git diff [branchName]
# 查看指定两个分支的差异
git diff [branchName1] [branchName2]
# 显示出所有有差异的文件列表
git diff [beanchName] --stat
# 查看当前分支与指定分支的指定文件的差异(路径可以是文件夹,也可以是具体文件)
git diff [branchName] [文件路径]
拉取指定分支代码
git pull origin [branchName]
推送分支到远程仓库
git push origin [branchName]
合并分支
# 合并指定分支上本地仓库最新的commit的版本
git merge [branchName]
# 合并指定分支上本地仓库最新push的版本
git merge origin/[branchName]
同步远程commit到本地
操作步骤
git clone http://gitlab.xqchuxing.com/gittest/xqchuxing-test.git
远程仓库链接
# 查看远程信息
git remote -v
# 远程仓库和本地仓库进行绑定
git remote add origin http://gitlab.xqchuxing.com/gittest/xqchuxing-test.git
标签操作
#查看当前项目所有标签
git tag
#打一个标签
git tag -a [TagName] -m 'TagMsg'
#给指定版本打一个标签
git tag -a [TagName] [CommitId] -m 'TagMsg'
#推送本地所有标签
git push origin --tags
#删除本地标签
git tag -d [TagName]
#输出最新的Tag
git describe --tags `git rev-list --tags --max-count=1`