Git 是软件开发人员在开发中常用的一种工具, 是开发之利器。
Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
命令
配置
git config --global user.name 'Your Name' 设置 git 提交显示的名字
git config --global user.email your_email@example.com 设置 git 提交显示的邮箱
git config --global alias.unstage "reset HEAD" 替换命令 git reset HEAD命令改为 git unstage
ssh-keygen -t rsa -C your_email@example.com 生成 SSH Key
git config --global core.editor emacs 设置文件编辑器
git config --global merge.tool vimdiff 设置差异分析工具
git config --list 查看配置信息
简洁版
初始化仓库
git init
添加远程仓库
git remote add <自定义名字> <远程仓库url>
给某个仓库名再添加一个远程仓库 url
git remote set-url --add <自定义名字> <远程仓库url>
更新项目
git pull
合并分支到当前分支
git merge <分支名>
创建标签
git tag <标签名字> <提交id前10位字符> 可通过git log获取
获取 log
git log
切换分支
git checkout <分支名>
创建分支并切换过去
git checkout -b <分支名>
删除分支
git branch -D <分支名>
推送
git push origin <分支名/标签名>
强制推送更新
git push -f origin <分支名/标签名>
推送所有分支
git push origin --all
推送所有标签
git push origin --tags
撤消本地改动(新文件和提交到缓存区的改动,不受影响)
git checkout -- <目录><文件名>
撤消本地所有提交与改动(假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它)
git fetch origin
git reset --hard origin/master
其它命令
- gitk 获取当前分支图形个界面
- 参数<分支名>: 获取某分支图形界面
- 参数=--all: 获取所有分支图形个界面
- cat <目录><文件名> 查看文件内容
详细版
初始
-
git init
初始化仓库 -
ls
显示目录下文件及文件夹(不包含隐藏文件即名字前带点的)- 参数
-a
显示目录下所有文件及文件夹
- 参数
-
git clone <url>
克隆项目
提交
-
git add <目录><文件名>
添加文件到版本库,可以多个文件一起添加,中间用空格隔开 -
git add *
或git add .
添加所有文件到版本库 -
git status
查看项目当前状态,详细信息- 参数
-s
: 显示简洁版
绿色表示已经提交的缓存区,红色表示在工作区未提交到缓存区的
A 新增 M 修改 D 删除 U 冲突 R 重命名?
push 会把绿色部分提交,红色部分不提交
已有记录文件做过改动和新文件,需要git add
- 参数
-
git diff
查看整个项目里的文件改动情况(工作区和缓存区比较)- 参数
<目录><文件名>
: 查看单个文件改动情况(工作区和缓存区比较- 参数
<标签名>
: 查看自当前标签发布之后项目的改动情况
- 参数
- 参数
--cached
: 查看整个项目里的文件改动情况(缓存区和本地仓库比较) - 参数
HEAD
: 查看整个项目里的文件改动情况(工作区和本地仓库比较) - 参数
--stat
: 显示摘要,而非完整 diff
- 参数
-
git commit
: 提交到缓存- 参数
-m
: 后面空格接提交信息 - 参数
-a
: 为所有已有记录文件执行git add
(新添加文件还是需要手动git add
)
- 参数
-
git reset HEAD
取消缓存已缓存的内容- 参数
<目录><文件名>
: 单个文件取消缓存已缓存内容
- 参数
-
git rm <目录><文件名>
: 将文件从缓存区和硬盘上移除- 参数
--cached
: 删除缓存中的文件,保留硬盘上的文件
- 参数
-
git mv
不推荐用 -
git log
显示当前分支提交记录- 参数
--author=<authorname>
: 只寻找某个特定作者的提交 - 参数
--oneline -<数字N>
: 显示简洁版,显示最近 N 次提交的记录 - 参数
--grep=<关键字>
: 根据提交注释关键字过滤提交记录 - 参数
<分支名>
: 显示指定分支 “可及” 的提交记录 - 参数
<分支名1> ^<分支名1>
: 查看在分支 1 不在分支 2 中的提交记录 - 参数
--decorate
: 显示带 tag 的记录 - 参数
-p
: 显示每个提交引入的补丁 - 参数
--stat
: 显示每个提交引入的差值统计 - 其它参数
--since
--before
--until
--after
- 参数
标签
-
git tag
显示当前项目的标签- 参数
<标签名>
给某个历史记录打标签 - 参数
-a
: 添加注解 - 参数
<SHA>
: 提交 id 前 n 位字符,可通过git log获取,n 位基于 SHA 唯一就行(建议 5~7 位)
- 参数
网友评论