Git 常用命令 有更新!

  |   0 评论   |   15 浏览

ssh 登录 git

ssh-keygen -t rsa -C "youremail@example.com" 生成密钥,位于 ~/.ssh复制公钥至github
ssh -T git@github.com 测试登录

git 配置

git config --global user.name "liweiwei"
git config --global user.email "liweiwei3257@qq.com"
git config --global gui.encoding utf-8 设置git gui编码,否则查看更改历史时中午会显示为乱码
git config -l 查看配置

git clone

将远程仓库克隆到本地

git clone git@xxx.com:xxx.git dir/ 将远程仓库克隆到本地dir目录
-o <name> 指定远程仓库名称,不使用默认名称 origin
git init 当前目录,初始化本地仓库

支持多种协议
$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/

git remote

用来管理远程仓库

git remote 查看所有远程仓库
-v 查看远程仓库地址

git remote show origin 查看远程仓库配置
git remote set-url origin git@xxx.com:xxx.git 设置远程仓库地址
git remote add origin git@xxx.com:xxx.git 添加远程仓库
git remote rm origin 删除远程仓库
git remote rename origin newname 修改远程仓库的名称

git fetch

将远程仓库的更新获取到本地

git fetch origin 将远程仓库的更新全部获取到本地
git fetch origin master 将远程仓库的某个分支获取到本地

提交

git add <文件名> 将文件内容添加到暂存区
git add -A 将所有变动添加到暂存区
git reset HEAD file 可以把添加到暂存区中文件重新放回工作区
git commit -m “提交说明”
git status 查看文件状态,哪些文件被修改

版本比较

git diff 查看工作区未添加到索引的文件与上一次提交的差异
git diff --cached 查看工作区已添加到索引的文件与上一次提交的差异
git diff HEAD 查看工作区文件与上一次提交的差异,不论是否添加到索引

查看提交历史

git log 查看提交日志,从近到远
git log --pretty=oneline 查看提交日志,简要信息
git log -p 查看提交日志,包含修改内容
git log -p -<数字> 查看最近几次提交日志,包含修改内容
git log -p --word-diff 查看提交日志,包含修改内容,精确到单词级别
-U<数字> 修改内容上下文行数,默认3行
--stat 显示每次更新的文件修改统计信息
--graph 显示提交历史时间线
--abbrev-commit 仅显示 commit 名称的前几个字符,而不是全部

版本回退

git reset

撤销修改

git checkout -- readme.txt “–”不能漏掉,如果漏掉就变成了切换分支
如果文件没有添加到暂存,就恢复到最新版本,如果没有已经添加到
暂存,则恢复到暂存中的版本。

分支管理

推送分支

git push <远程主机名> <本地分支名>:<远程分支名>
git push origin master 推送分支 master,本地、远端都为 master

删除远程分支

git push origin :master 删除远程分支 master
git push origin --delete master 删除远程分支 master(推荐使用此方法)

git fetch 获取远程仓库所有更新
git branch 列出所有分支,当前分支*标注

git branch <分支> 创建分支
-a 包含远程分支
-r 只显示远程分支
-d <分支> 删除本地分支

git checkout dev 在本地有 dev 分支的情况下,切换分支,没有的话使用 -b 创建本地分支并切换
-b newBranch origin/masterorigin/master 分支上创建并切换到 newBranch 分支

git merge origin/master 合并指定分支到当前分支

标签管理

标签(tag)指向某个 commit。
git tag 查看所有标签
git show 标签名称 查看指定标签信息,如git show v1.0
git checkout <tagname> 切换到标签
git tag 标签名称 在最新提交的 commit 上创建一个标签,如 git tag v1.0
git tag 标签名称 commit 名称 对指定 commit 打 tag,commit 名称可以为前 8 位,如 git tag v1.0 6224937
git tag -a v0.1 -m "version 0.1 released" 3628164 创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -d v0.1 删除标签 v.01
git push origin <tagname> 推送指定标签到远程
git push origin --tags 一次性推送全部尚未推送到远程的本地标签

删除标签

需要先从本地删除,然后在删除远程的
git tag -d v0.9 删除本地标签 v0.9
git push origin :refs/tags/v0.9 将标签 v0.9 从远程删除
git push origin --delete tag <tagname> 从远程删除(推荐使用此方法)

参考资料
1. Git远程操作详解_阮一峰的网络日志
2. Git 教程_易百教程
3. Git 教程_廖雪峰的官方网站
4. Git查看、删除、重命名远程分支和tag_ZRONG’s Blog

评论