Git 现在很多公司都在使用,下面罗列出开发过程中常见的命令.
配置Git 生成ssh key
Merge 保存并强制退出编辑模式:wq!
git config --list //查看当前配置
git config --global --list //查看全局配置
git config user.name "xxx" //配置当前用户名
git config user.email "xxx" //配置当前邮箱
git config --global user.name "xxx" //配置全局用户名
git config --global user.email "xxx" //配置全局邮箱
ssh-keygen -t rsa -C "your_email@example.com" //生成ssh key
ssh-keygen -t rsa -C "xugang2801779@126.com" -f .ssh/id_rsa_private //指定生成文件的名称,常用于一台电脑配置多个密钥
同一台电脑生成不同密钥示例
背景:一台电脑工作和学习分开。一个ssh密钥连接公司的git;另一个连接github或者gitee
-
使用以上命令生成两组key
image.png -
新建config文件内容如下配置
# 个人的GitHub公钥
Host github.com
HostName github.com
PreferredAuthentications publickey
# 指定特定的ssh私钥文件
IdentityFile ~/.ssh/id_rsa_private
# 个人的giee公钥
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
# 指定特定的ssh私钥文件
IdentityFile ~/.ssh/id_rsa_private
# 公司的git
Host xxxxxx
HostName xxxxxxx
PreferredAuthentications publickey
# 指定特定的ssh私钥文件
IdentityFile ~/.ssh/id_rsa
- 在各个Git后台添加对应的公钥之后进行连接测试
//测试GitHub 连接
ssh -T git@github.com
//测试gitee连接
ssh -T git@gitee.com
- 结果,如果连接成功则会打印相关信息
//大概意思就是xxx,连接成功,github 不提供shell访问
Hi xxxxx! You've successfully authenticated, but GitHub does not provide shell access
Git 常用命令
命令 | 描述 | 备注 |
---|---|---|
git init | 把当前目录变成可以管理的git仓库,生成git文件 | |
git remote add origin 你的git项目地址 | 将本地仓库和远端仓库关联起来 | |
git remote -v | 查看远端仓库 | |
git remote rm origin | 删除指定的远程 | |
git clone [GIT_DEPO] | 从远端仓库克隆 | |
git status | 查看仓库状态 | |
git diff | 查看改动内容 | 使用status 命令看到有改动,可以使用diff命令查看改动细节 |
git log | 查看日志 | q 退出查看状态 |
git add --a | 把文件添加到暂存区 | 使用status 可以查看到文件被git跟踪,呈现绿色 |
git commit -m "message" | 提交 | [message] 为提交的描述语句使用“” 包裹 |
git pull origin [BRANCH_NAME] | 把远端改动同步到本地 | 指定远端分支,即将远端xxx分支同步到本地当前分支 |
git push origin [LOCAL_BRANCH]:[REMOTE_BRANCH] | 将本地分支推到远端分支 | 远端没有分支会自动创建 |
git branch | 查看本地分支 |
* 标识的当前分支;q退出查看模式 |
git branch -a | 查看所有分支 | 远端和本地分支不同颜色区分的 |
git checkout [BRANCH_NAME] | 切换到某个分支 | 分支名tab可以快速补全 |
git checkout -b [LOCAL_BRANCH_NAME] origin/[REMOTE_BRANCH_NAME] | 将远端分支拉到本地,并且以LOCAL_BRANCH_NAME命名 | |
git stash | 将本地当前分支改动保存到暂存区 | 不会产生commit 记录 |
git stash pop | 将暂存区保存的改动同步到本地当前分支 | 可能会有冲突 |
git push origin [BRANCH_NAME] --force | 强行将本地分支推到远端 | |
git rm -r --cached [FILE_NAME]/[FOLDER_NAME] | 取消跟踪某文件或者文件夹 | |
git branch -d [BRANCH_NAME] | 删除本地某分支 | |
git push origin --delete [BRANCH_NAME] | 删除远端分支 | |
git reset --h [COMMIT_ID] | 将本地HEAD 指向某commit,此命令会导致指定commit之后的版本被删除 | 没有指定commit 默认指向最近commit,此时如果要推到远端需要使用git push origin xxx -force ,此操作不会产生记录,比较粗暴,谨慎使用 |
git revert | 删除指定分支,不会对之后的commit产出影响,但是可能会产生冲突 | 和 reset 不同的是此命令确实会将某个版本的改动还原,但是会生成一个新的commit,这种方法比较安全,但是会产生冲突 |
git tag | 查看已有的tag | |
git tag [TAG_NAME] -m "message" -a | 给当前代码打一个Tag | |
git show [TAG_NAME] | 查看TAG详情 | |
git push origin [TAG_NAME] | 将TAG推送到远端 | |
git push origin --delete tag [TAG_NAME] | 删除远端tag |
git tag -d [TAG_NAME] 删除本地TAG |
网友评论