【开发工具的那些故事】git常用命令,手把手教你配置多个git账号
1.序言
git作为现在分布式开发常用的代码管理工具,对于我们开发人员,经常使用的一些命令是必须熟知的。下面就来整理一下我们平时会经常用到的一些git操作命令。
2.常用命令
注:<>内的表示注释内容,非命令
git init:初始化本地仓库
git clone :检出远程分支到本地
git add "文件名" :添加到本地仓库
git commit -am "说明" :提交分支。加的-a参数可以将所有已跟踪文件中的执行修改或删除操作的文件都提交到本地仓库,即使它们没有经过git add添加到暂存区
git commit -o 指定文件名 -m '备注' :#提交指定文件
git log :查看历史记录 ,可以查看到提交的版本号
git log --graph: 查看历史记录分支明细
git branch:查看分支
git branch -r:查看远程分支
git branch <name>:创建分支
git checkout <name>:切换分支
git checkout -b <branch name>:创建+切换分支,没有-b则只创建分支
git merge --no-ff <branch name>:合并某分支到当前分支。不加--no-ff表示快速合并,加了该参数会有合并日志记录
git branch -d <branch name>:删除分支
git branch -D <branch name>:强行删除分支
git push origin --delete < branch name>:删除远程分支
git reset --hard HEAD^:来回退到上一次commit的状态
git reset --hard commitid:此命令可以用来回退到任意版本
git remote -v:查看远程分支情况
git push -u origin:推送分支到远程;-u表示指定一个默认主机,后面push可以直接git push
git update-index --assume-unchanged <文件名>:git忽略跟踪某文件
git config --list :查看所有git配置
git config user.name:查看自己的用户名和
git config user.email:查看自己的邮箱地址
git config --global user.name "xxx":修改自己的用户名
git config --global user.email "xxx":修改自己的邮箱地址
git clean -d -fx:表示删除 一些 没有 git add 的 文件;打开SourceTree通过命令行,进入本地版本仓库目录下,直接执行
git clean 参数 :
-n 显示将要删除的文件和目录;
-x -----删除忽略文件已经对git来说不识别的文件
-d -----删除未被添加到git的路径中的文件
-f -----强制运行
where git:查找本地git程序安装路径
Git diff branch1 branch2 --stat //显示出所有有差异的文件列表
Git diff branch1 branch2 文件名(带路径) //显示指定文件的详细差异
Git diff branch1 branch2 //显示出所有有差异的文件的详细差异
3.使用多个git账号(企业账号与私人账号)
例如办公时需要使用公司为我们分配的git账号;私下我们也会使用自己私有的git账号。
如:
-
公司分配使用gitlab账号
-
自己使用github账号
公司分配的账号这里就不多说啦。来说说如何设置自己的github账号,与办公的区分开来使用!
3.1生成github的ssh key
进入个人的git秘钥存放目录.ssh中:
右键打开Git Bash,输入一下命令行:
ssh-keygen -t rsa -C "你的github邮箱" -f ~/.ssh/github_rsa
一顿回车键,如上图,将生成的github_rsa和github_rsa.pub的两个文件!
将github_rsa.pub中的内容,设置到github的setting中的SSH and GPG keys中,点击Add SSH key按钮添加公钥!如下图:
3.2 配置公司gitlab的ssh key和个人github的ssh key
在~/.ssh/目录下创建一个config文件,分别配置公司gitlab的ssh key和个人github的ssh key,config文件内容如下:
Host gitlab
HostName http://xxx.com --公司gitlab地址
User yourname --你的名称
IdentityFile ~/.ssh/id_rsa --gitlab的秘钥
Host github.com
HostName github.com --github地址
User Yangy --名称
IdentityFile ~/.ssh/github_rsa --github秘钥
注:User 对应的名称只是针对ssh key的配置的,并非对应的账户名
添加完之后,还需要设置免秘钥操作(这一步必须要做,否则后面测试ssh会不通过):
注:如果执行 ssh-add 时显示错误 Could not open a connection to your authentication agent,那么执行eval $(ssh-agent)
#一般的情况下ssh-agent是启动的
ssh-agent -s
#启动
ssh-agent
#查看已有的SSH keys
ls -al ~/.ssh
#添加到ssh-agent中
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/github_rsa
3.3 分别测试一下你的ssh
ssh -T git@gitlab
ssh -T [email protected]
出现如图提示,则表示你的个人github账号已经配置通过,可以访问了!
我这里遇到一个问题,如下图:
3.4 分别设置名称
git config --global user.name "公司gitlab实名"
git config --local user.name "github用户名"
3.5 切换账户
git config user.name <使用3.4中的设置对应的账户>
3.6 配置个人github的远程仓库地址
在要下载或上传到github中的项目目录下,打开git bash窗口,使用git init初始化,然后输入
git remote add origin https://github.com/xxx/xxx
与个人远程仓库建立连接,后续就可以尽情的pull和push啦!!!
4.总结
至此,双git账号使用就配置完成啦。个人目前就是如此使用对公和私人账号的,有需要的朋友,赶紧学起来吧!