# Github使用小计

# 同时配置github和gitlab

添加 gitlab key

cd ~/.ssh
ssh-keygen -t rsa -C "******@***.cn"
// 或
ssh-keygen -t rsa -f ~/.ssh/id_rsa_gitlab -C "yourmail@xxx.com"

.ssh 文件夹下里面创建一个 config 文件,内容参考:

配置文件添加 Host和 IdentityFile 的匹配关系,这样 Github 会根据当前 git 地址自动使用对应在的 rsa 文件

# default-github                                                                       
Host github.com
HostName github.com
User lanjz
IdentityFile ~/.ssh/id_rsa
# git_lab_1                                                                         
Host git.mysoft.com.cn
HostName git.mysoft.com.cn
User lanjz
IdentityFile ~/.ssh/id_rsa_gitlab
# 也可以配置多个git_lab_2
Host git.myscrm.cn
HostName git.myscrm.cn
User lanjz
IdentityFile ~/.ssh/id_rsa_gitlab                               

检查是否成功 ssh -T git@github

最后配置好本地的全局账号

git config --global user.name 'xxx'
git config --global user.email 'x@xxx'

# 使用账号密码CLONE项目

格式:git clone http://邮箱(或用户名):密码@仓库

如:

  • git账号: lanjz

  • git密码:123

  • 仓库:https://git.test.com/abc/demo

克隆命令:git clone https://lanjz:123@git.test.com/abc/demo

# 本地回滚

git reset

// 回滚到上次提交状态,保留本地修改。
git reset HEAD~1
git reset <commit>

// 回滚,但不保留本地修改。
git reset --hard <commit>

// 从暂存区移除特定文件,相当于 unstage 一个文件。
git reset file

// 重置暂存区,相当于 unstage all。
git reset

// 清除掉所有未提交更改。相当于 unstage all + 撤销所有更改。
git reset --hard

reset 后面的参数

  • hard:慎用!回滚到指定的版本,不保留修改的代码

    1. 移动本地库HEAD指针

    2. 重置暂存区

    3. 重置工作区

  • soft: 仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的

    1. 移动本地库HEAD指针
  • mixed: 回滚后,不仅移动了本地库的指针,同时暂存区的东西也没了,意思就是你上次添加到暂存区的文件没了

    1. 移动本地库HEAD指针

    2. 重置暂存区

  • keep: 回滚后,本地代码就是你回退版本的代码,而暂存区是没有做任何改变的

    1. 移动本地库HEAD指针

    2. 暂存区不变

    3. 重置工作区