git用户名邮箱的全局配置
git config --global user.name "xxxxx" # 全局设置名字
git config --global user.email "xxxxx@xx.com" # 全局设置邮箱
git config --list # 看全局配置
配置 SSH
创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
去远程仓库添加自己的公钥
添加多个密钥
在.ssh目录中添加config文件(无后缀名),文件内容如下
#github配置 Host github.com HostName github.com IdentityFile ~/.ssh/id_rsa User git #gitee的配置 Host gitee.com HostName gitee.com IdentityFile ~/.ssh/compstar User git
工作流程图
工作区 —— 暂存区 ——- 本地仓库
git命令
echo "# git" >> README.md # 创建内容为"# git"的 README.md
git init # 初始化本地git仓库(创建新仓库)
git add *(file) # 添加所有到暂存区
git status # 仓库当前的状态
git diff HEAD (file) # 查看(file)工作区和暂存区里面最新版本的区别
git commit -m '' # 把暂存区提交到版本库
git log # 查看commit日志
git log --pretty=oneline # 查看精简commit日志
git log --graph # 命令可以看到分支合并图
git reflog --pretty=oneline # 查看精简操作历史日志
git reflog # 查看操作历史日志
git reset HEAD^ # 撤销没有push的commit
git reset --hard HEAD^ # 回到上次版本
git checkout -- file # 可以丢弃工作区的修改(--很重要,不加为切换分支)
git reset HEAD file # 把暂存区的修改撤销掉(unstage),重新放回工作区
git reset --hard 3628164(版本号) # 回到某个版本
git reset 命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本
del fileName # window cmd 下删除文件
git rm fileName # 删除版本库里的文件
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
git clone # 克隆下来
git remote -v # 显示全部远程仓库
git remote add 远程名称(origin) 远程链接 # 添加远程仓库
git remote set-url 远程名称(orgin) 新远程地址 # 修改远程仓库地址
git remote rm origin # 删除远程仓库地址
git push -u origin master # 第一次推送分支到远程仓库(-u 本地分支和远程分支关联起来)
git push # http://www.cnblogs.com/qianqiannian/p/6008140.html
git stash # 当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list # 储藏列表
git stash apply # 恢复之前储藏的,但是stash内容不会被删除
git stash apply stash@{0} # 恢复到指定的版本
git stash drop # 把上面没删除的stash 删除掉
git stash pop # 恢复储藏的同时把stash内容也删了
git 分支命令
git branch # 查看分支
git branch -v # 列出本地分支并显示最新commit
git branch -a # 列出远程分支
git checkout -b dev # 创建分支dev并切换到dev
git checkout -b dev origin/dev # 创建远程分支dev到本地并切换到dev
git branch dev # 创建dev分支
git checkout dev # 切换到dev分支 (与之前撤销文件有区别)
git branch -d dev # 删除分支dev分支
git branch -D dev # 删除未合并的dev分支
git merge 分支名称(dev) # 合并指定分支(dev)到当前分支(master)[fast-forword]
git merge --no-ff -m "merge with no-ff" dev # 合并指定分支(dev)到当前分支(master)[非fast-forword] 区别在于分支
git log --graph --pretty=oneline --abbrev-commit# 分支合并情况
git log --graph # 分支合并图
git push[你的远程仓库在本地的别名][空格][冒号][你的分支名字] 删除github上的分支
git 标签命令
git tag <tagname>(v0.1) # 当前commit 标记v0.1 标签
git tag -a <tagname> -m "说明" 指定版本号 # 用-a指定标签名,-m指定说明文字
git show <tagname> # 查看标签信息
git tag -d <tagname> # 删除标签
git push origin <tagname> # 推送便签到远程仓库
git push origin --tags # 所有没有推送到远程的都推送过去
git push origin :refs/tags/<tagname> # 删除一个远程标签,需要先删除本地标签
git 常用命令