1.打开 Git Bash 程序,分别输入以下两条指令:
git config --global user.name “你的名字”
git config --global user.email “你的Email”
然后输入指令:ssh-keygen -t rsa -C “你的Email 以生成SSH Key,生成的SSH key会保存在C:\Users\你的用户名.ssh下面,分别是公钥id_rsa.pub和私钥id_rsa
用文本编辑器打开id_rsa.pub,复制所有文本,然后打开公司git中央库网站,登录后点击MyProfile图标,选择SSH Keys,点击Add New,然后粘贴到SSH公钥中去
然后,在Git Bash窗口输入指令:ssh -T [email protected],如收到Welcome to GitLab …, 则证明证书配置成功
打开TortoiseGit程序组中的Puttygen,点击Load按钮,选择上步生成的私钥id_rsa:
然后点击Save private key按钮保存为PuTTY格式的私钥,保存文件名最好用你的用户名
添加配置(此处可以单独为每个仓库配置,即不适用全局的配置项)
–global参数指的是全局
git config --golbal user.name "XXX"2
git config --golbal user.email "[email protected]"
清除配置
#全局配置账户移除
git config --global --unset user.name
#查看全局用户名
git config --global user.name
ssh-keygen -t rsa -C "[email protected]"
第一次给github配置sshkey时,直接按回车,其余什么都不管。最后看生成的id_rsa文件和id_rsa.pub文件。 这次需要给这个生成的文件起一个名,
## .ssh文件下生成一个config文件
type nul>config
## 加入配置
# default
Host gitlab.xxxx.com
HostName gitlab.xxxx.com
User git
IdentityFile ~/.ssh/id_rsa
# two
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/zdid_rsa
原理分析
1.ssh 客户端是通过类似 [email protected]:githubUserName/repName.git 的地址来识别使用本地的哪个私钥的,地址中的 User 是@前面的git, Host 是@后面的github.com。
2.如果所有账号的 User 和 Host 都为 git 和 github.com,那么就只能使用一个私钥。所以要对User 和 Host 进行配置,让每个账号使用自己的 Host,每个 Host 的域名做 CNAME 解析到 github.com,如上面配置中的Host second.github.com。
3.配置了别名之后,新的地址就是[email protected]:githubUserName/repName.git(在添加远程仓库时使用)。这样 ssh 在连接时就可以区别不同的账号了。
工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴理解工作区与暂存区的区别
工作区根目录下有一个默认隐藏的目录.git,它并不属于工作区,而是版本库(Repository)。版本库中内容很多,并且都很重要,有两个是我们实际操作中经常要遇到的,那就是暂存区(也可以称之为stage或者index)和分支,HEAD是一个指针,指向当前所在的分支
git diff //直接git diff 可查看所有的工作区和暂存区的差异
git diff -- readme // -- (空格) 后面跟哪个文件就查看哪个文件工作区和暂存区之间的差异
## 初始化
git init
##将修改的代码添加到缓存区 .代表所有的修改的
git add .
git commit -m "msg"
##关联远程仓库
git remote add origin “ git-url”
## 将远程仓库代码pull到本地(可能存在冲突)
git pull origin master
##把本地库的内容推送到远程
git push -u origin master
git clone "git-url”
##拉取远程仓库代码
## commit的代码回滚到上个版本
git reset --hard HEAD^
## 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard HEAD~3
## 退到/进到 指定commit的sha码
git reset --hard commit_id
##强推到远程
git push origin HEAD --force
revert 注意是撤销某次操作,而不是恢复到
##还原版本然后提交,但是会有一条还原记录
git revert HEAD 或者 git revert c011eb3
##丢弃最近的三个commit,把状态恢复到最近的第四个commit,并且提交一个新的commit来记录这次改变
git revert HEAD~3
git reset –soft 不会改变stage区,仅仅将commit回退到了指定的提交 如果还要提交,直接commit即可
git reset –mixed 不回改变工作区,但是会用指定的commit覆盖stage 区,之前所有暂存的内容都变为为暂存的状态
git reset –hard 使用指定的commit的内容覆盖stage区和工作区。
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除分支:git branch –d name
修改日志
修改最近一次的commit 信息
git commit --amend
修改的commit是倒数第三条,使用下述命令
git rebase -i HEAD~3