🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # GUI https://www.syntevo.com/smartgit/ https://www.git-tower.com/windows/ # 工作之Git `user.name, user.email `肯定是你自己在公司内的帐号和邮箱啊. 一般公司都有内部的人事管理系统吧, 用这个账户名就可以了, 邮箱也尽量用公司内部的个人邮箱吧. 如果你们公司有自己搭建的 Git 服务器, 那么可以把自己电脑的 ssh 公钥设置上, 这样在 `clone` 时就不需要每次都输入帐号密码了. 代码肯定是使用 `git clone` 命令拉下来的。至于你有没有 git 仓库的权限, 那问问你的 leader 吧. 关于 Git 的分支管理, 和常用的分支有哪些, 推荐你看看这篇文章: [Git分支管理策略](http://www.ruanyifeng.com/blog/2012/07/git.html) ## 配置多Git账号 只有一个Git平台的话,配置Git 的全局用户和邮箱就可以了: ``` git config --global user.name "你的名字" git config --global user.email "你的邮箱" ``` 配置全局用户和邮箱完成后,我们可以查看 `C:/Users/你的用户名/.gitconfig` 即可看到配置,内容大概如下: ``` name = Kevin_Smile email = 123456789@qq.com ``` 到此配置全部完成,接下来验证下SSH-KEY配置是否成功,在命令窗口中输入如下命令(我是使用的码云平台): 1. 码云 ``` ssh -T git@git.oschina.net ``` 2. github ``` ssh -T git@git.oschina.net ``` 用公司的分配的 email,[生成公司的所用的 SSH-Key](http://gitlab.com/help/ssh/README#generating-a-new-ssh-key-pair); 输入`work_id_rsa`(给你公司的SSH-Key起一个可以区分的名字) 进入 `C:/Users/你的用户名/.ssh`,新建一个文本名为`config`文件: ``` touch config ``` 添加`config`配置文件用于区分多个 SSH-Key ``` # github Host github.com # git 域名 map,可以使用这个别名做克隆和更新 HostName github.com # git服务器 User xw@mail.com # git 账号 PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa # 用户的 private key # 公司(Gerrit) Host gitlab # gitlab别名,可以使用这个别名做克隆和更新 HostName git-inner.yunxuetang.com.cn User xuwei@yxt.com PreferredAuthentications publickey IdentityFile ~/.ssh/work_id_rsa ``` > 每个账号单独配置一个**Host**,每个**Host**要取一个别名,每个Host主要配置**HostName**和**IdentityFile**两个属性即可 > > **Host**的名字可以取为自己喜欢的名字,不过这个会影响git相关命令,例如: **Host**mygithub 这样定义的话,命令如下,即git@后面紧跟的名字改为**mygithub** git clone git@**mygithub**:PopFisher/AndroidRotateAnim.git > > **HostName**          这个是真实的域名地址 **IdentityFile**         这里是id\_rsa的地址 **PreferredAuthentications**   配置登录时用什么权限认证--可设为`publickey,password publickey,keyboard-interactive等` **User**           配置使用用户名 ## 测试 ~~~ $ ssh -T git@gitee.com $ ssh -T git@github.com ~~~ 还可以为每个项目分别配置账户信息(不然会默认使用你的全局用户信息),进入项目文件夹后: ``` git config --local user.name "你的名字" git config --local user.email "你的邮箱" ``` 单个项目:`git config --local -l`. 全局配置:`git config --global -l` 最后,进入项目文件夹下的`.git`文件夹查看`config`文件内容: ``` [user] name = YanZhenjie email = smallajax@foxmail.com ``` [如何切换多个GitHub账号](https://www.jianshu.com/p/0ad3d88c51f4) # Git 撤销冲突,用远端代码覆盖本地 有个命令可以将代码还原到指定历史: ``` ➜ data git:(init) ✗ git fetch --all 正在获取 origin ➜ data git:(init) ✗ git reset --hard origin/dev HEAD 现在位于 612af0e update ➜ data git:(init) git pull Already up-to-date. ``` **备注:** `git fetch` 只是下载远程的库的内容,不做任何的合并`git reset`把`HEAD`指向刚刚下载的最新的版本 ## 团队的大小 2个人以上的项目 关于分支的建立,一个master分支用于最终发布,一个develop分支是开发主分支,然后每个人的开发任务一个feature分支,个人开发测试完成,可以合并到develop分支,基于develop分支发beat版本。 2个人以下的项目 一个master分支用于最终发布,一个develop分支就可以,开发时直接都在develop分支上开发 这里面主要的是沟通成本和管理成本。 # 代码检视工具 Gerrit