一般来说,下图这些命令已经足够日常使用。但是有些时候,我们还需要使用其它的一些不太常用的命令。
下面是我整理的常用 Git 命令。
Git 配置类命令
基本上换电脑,或者需要添加/切换远程仓库的时候 才能用到
第一步:首先配置用户名和邮箱 1 2 3 4 #配置或切换 git 用户名: git config --global user.name "YOUR USERNAME" # 配置或切换 git 邮箱: git config --global user.email "YOUR EMAIL"
配置完可以查看一下是否生效:
1 2 3 4 # 查看用户 git config user.name # 查看邮箱 git config user.email
第二步:GIT 配置公钥 1. 生成密钥 1 2 3 4 5 6 7 8 9 10 11 # 进入 Git 默认密钥目录 cd ~/.ssh # 列出文件 ls 如果有3个文件,则密钥已经生成,id_rsa.pub 就是公钥,可直接进入下面第二步; 如果没有 .ssh 文件夹或者文件夹为空,则密钥没有生成,那么通过 ssh-keygen -t rsa -C "your email" 生成密钥 会提示生成密钥的文件名及设置密码和确认密码 如果都不需设置 则直接三次回车 tips:多账户配置此处需指定生成密钥的文件别名
2. 配置公钥
将公钥 id_rsa.pub
中的内容配置到 GitHub/GitLab/Gitee 上,一般为 Setting -> SSH KEY
3. 测试连接
执行命令 ssh -T git@github.com
测试连接 出现提示如下:
1 2 3 The authenticity of host 'github.com (xx.11.22.33)' can't be established. RSA key fingerprint is SHA256:nThxxxxxxxxxxxxxxxxxxxxxxxb8. Are you sure you want to continue connecting (yes/no)?
输入 yes
继续;出现类似以下提示
Hi xxx! you’ve successfully authenticated. Xxxxx….
说明密钥配置成功, ~/.ssh
路径下会出现 known_hosts
文件。
接下来就可以正常使用 Git 从远程仓库 clone
或 pull
项目了。
Git 常用命令 常用命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 # 把这个目录变成 Git 可以管理的仓库 git init # 列出所有配置 git config --list # 显示工作树的状态 常用,使用此命令 Git 会显示当前 Git 仓库的状态,并给出命令建议 git status # 文件添加到仓库 git add [filename] # 例:添加 README.md 到仓库 git add README.md # 不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部 add git add . # 取消 add 的文件:如果手滑添加了不想添加的内容,例如 HelloWorld.class 文件,我们可以这样来取消暂存 HelloWorld.class 文件: git reset HEAD HelloWorld.class # git 撤销文件修改:在工作区修改,但并未提交到暂存区(即并没有add) 注意:git chekcout 是让文件回到最近一次该文件 git commit 或 git add 时的状态。如果一次也没 commit 和 add 过的文件无法使用该命令撤销。命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令 git checkout -- <file> # 例:readme.txt 文件修改后还未 git add,撤销 readme.txt 的修改 git checkout -- readme.txt # 撤销全部文件修改 git checkout . # 把文件提交到仓库 引号内是备注 git commit -m "first commit" # 关联远程仓库 git remote add origin https://github.com/xxx.git # 取消远程仓库的关联 git remote remove origin # 拉取远程仓库所有内容 并与本地内容合并 $ git pull [remote] # 把本地库的所有内容推送到远程库上 git push -u origin master # git 查看远程仓库地址命令: git remote -v # 从另一个存储库下载对象和引用,和 git pull 相比,该命令不会强制合并,需要手动 merge。 git fetch [remote] # 执行命令 git fetch 取回更新后,可执行以下命令查看远程所有提交日志 git log -p FETCH_HEAD # 显示本地的 master 分支和 origin/master 分支 所有历史提交日志 git log -p master origin/master # 比较本地的 master 分支和 origin/master 分支的差别 git diff master origin/master # 创建分支 git branch [branch] # 切换分支 git checkout [branch] # 新建一个分支,并切换到该分支 git checkout -b [branch] # git checkout 命令加上 -b 参数表示创建并切换,相当于以下两条命令 git branch dev git checkout dev # 例:创建 dev 分支,然后切换到 dev 分支 git checkout -b dev # 合并分支 git merge [branch] # 例:把 dev 分支的工作成果合并到 master 分支上: 1.切换到 master 分支上 2.执行 git merge dev # 删除分支 git branch -d [branch] # 例:git 删除本地分支 1.先切换到别的分支: git checkout dev_20180927 2.删除本地分支: git branch -d dev_20181018 # 查看分支 git branch # 打 tag git tag v1.0 # 可以用命令 git tag 查看所有标签 git tag # 查看 tag git show [tag] # 如果要推送某个标签到远程,使用命令 git push origin <tagname> # 强制 push 当前分支到远程仓库,即使有冲突 git push -f origin master # 版本回复 git reset --hard 1094a(版本号) 版本号没必要写全,前几位就可以了,Git 会自动去找。当然也不能只写前一两位,因为 Git 可能会找到多个版本号,就无法确定是哪一个了。
新建 Git 项目命令 1 2 3 4 5 6 echo "# java-zookeeper" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/xxx.git git push -u origin master
Git 解决冲突
简单暴力,合并时需要注意别覆盖了远程其他人的修改
1 2 先 commit 到本地仓库 然后 pull 远程仓库 最后合并并提交
忽略 SSL 验证
当你通过 HTTPS 访问 Git 远程仓库,如果服务器的 SSL 证书未经过第三方机构签署,那么 Git 就会报错。
解决办法:执行以下命令:
1 git config --global http.sslVerify false
CRLF 问题解决办法
在使用 Git 时出现以下提示:
Warn if CRLF line separators are about to be commited
问题参考链接 :stackoverflow
解决办法:执行以下命令:
1 2 git config --global core.autocrlf input git config --global core.eol lf
Git 多用户配置 第一步:生成密钥时指定别名
通过 ssh-keygen -t rsa -C "这里填秘钥的备注信息"
生成秘钥,如下:
1 2 3 $ ssh-keygen -t rsa -C "这里填秘钥的备注信息" Generating public/private rsa key pair. Enter file in which to save the key (/Users/zhuo/.ssh/id_rsa):
修改别名
设置密码和确认密码 如果都不需设置 则直接回车
如果多个平台不想公用一套密钥,则此步需生成多个密钥
第二步:配置公钥
将公钥 id_rsa.pub
中的内容配置到 GitHub/GitLab/Gitee 上,一般为 Setting -> SSH KEY
第三步:配置 config 文件
在 .ssh 目录新建 config 文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 # 配置 github.com id_rsa_github 为生成密钥的时候指定的文件名 Host github.com HostName github.com IdentityFile C:\Users\admin\.ssh\id_rsa_github PreferredAuthentications publickey User yourname # 配置 gitee.com Host gitee.com HostName gitee.com IdentityFile C:\Users\admin\.ssh\id_rsa_gitee PreferredAuthentications publickey User yourname
第四步:测试连接
执行命令 ssh -T git@github.com
测试连接,参考上文
如果测试连接失败,可删除 known_hosts 文件中的历史记录,重新测试