Git 笔记

Git 笔记

仓库的区别:

  • 暂存区
    这个是我们每一次进行代码修改的地方,例如我们idea的所编译的代码就是缓存区。
  • 本地仓库
    是我们每一次pull,从远程仓库pull(拉取)到地方,这个地方就是本地仓库 ,他其实就是远程仓库的一个副本。
  • 远程仓库
    这个是存放到服务器上的代码,是每一个人认为自己的代码修改好了,就可以集体上传到一个地方,而你也可以从这个地方下载别人的代码,这个地方就是远程仓库。

commit/pull/push 的区别

注意:如果本地仓库关联着一个远程仓库,先 git add 文件名,git commit,再先 pull 再 push,不然可能会有冲突

  • pull
    将本地库所关联的远程库commit ID 更新到最新的同时,还自动合并了远程仓库的代码
    git pull = git fetch + git merge
    git fetch 只会将本地库所关联的远程库commit ID 更新到最新
    git merge 才会把文件合并过来,此时才修改本地库代码
  • commit
    当我们想要把自己的代码想要提交到远程的时候,所用的命令行语句,由于我们修改所在的区域在暂存区,我们首先要把自己的代码commit(提交)到本地仓库,然后在从本地仓库push到远程仓库。
    但是切记住一点,我们如果每一次在commit的时候,我们都需要先从线上pull最新的代码到本地仓库,然后在把暂存区里面的代码提交到本地仓库,这个时候如果没有冲突固然是最好的,如果有了冲突,这我需要解决冲突,这个此时本地仓库已经是最新的代码且又包括暂存区上面的代码了(至于先commit还是先pull,这个说法不一)
  • push
    这个就是我们前面把代码提交到了本地,如果我们需要提交到远程服务器上,则需要把代码push到远程的分支里面,如果有了冲突,再解决就好了。

多个密钥的情况

本段文档还不正常,大概是配置文件那一步的问题,无法多密钥

如果您同时用 GitHub,码云,Gitlab 这些中的某两个或多个,密钥管理可能就不一样了,如果邮箱相同,生成新密钥时,就会覆盖,导致之前的用不了。

我们可以在~/.ssh目录下新建一个config文件配置一下,就可以解决问题
具体步骤
找到管理密钥的文件夹,我的是在:C:\Users\qian.ssh,在这个文件夹里右键,打开 Git Bash Here ,或者先执行命令切换目录:cd C:/Users/qian/.ssh
生成第一个ssh key(这里我用于github,用的gmail邮箱)
ssh-keygen -t rsa -C"yourmail@gmail.com"

这里不要一路回车,第一个回车后,让你选择在哪里选择存放key的时候,冒号后面写个名字,比如id_rsa_github,这里如果没有写名字,直接回车,如果之前生成过密钥,则可能出现同名覆盖,之后的两个可以直接回车。

完成之后我们可以看到~/.ssh目录下多了两个文件

image

生成第二个ssh key(这里我用于gitlab,用的是公司邮箱)

ssh-keygen -t rsa -C"yourmail@gmail.com"

还是一样不要一路回车,在第一个回车后在冒号后面写个名字,比如id_rsa_gitlab,之后的两个可以直接回车。

一样出现两个文件,一个公钥一个私钥。

将私钥添加到 SSH agent

默认SSH只会读取id_rsa,所以为了让SSH识别新的私钥,需要将其添加到SSH agent

打开ssh-agent:

ssh-agent bash 授权给编辑器
ssh-add -D 删除私钥列表
ssh-add -l 查看私钥列表
这里如果你用的github官方的bash,ssh-agent -s,如果是其他的,比如msysgit,eval $(ssh-agent -s)

添加私钥
ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab

创建并修改config文件

在windows下新建一个txt文本,然后将名字后缀一起改成config即可

在bash下的话直接touch config即可。

添加一下内容

gitlab

Host git.iboxpay.com

   HostName git.iboxpay.com//这里填你们公司的git网址即可

   PreferredAuthentications publickey 

   IdentityFile ~/.ssh/id_rsa_gitlab 

   User zanyang

github

    Host github.comHostName github.com

    PreferredAuthentications publickey

    IdentityFile ~/.ssh/id_rsa_github

    User L

在github和gitlab上添加公钥即可,这里不再多说。

测试:

$ ssh -T git@github.com

PS:如果到这里你没有成功的话,别急,教你解决问题的终极办法--debug

比如测试github,ssh -vT git@github.com

-v 是输出编译信息,然后根据编译信息自己去解决问题吧。就我自己来说一般是config里的host那块写错了

补充一下

如果之前有设置全局用户名和邮箱的话,需要unset一下

git config --global--unsetuser.name

git config --global--unsetuser.email

然后在不同的仓库下设置局部的用户名和邮箱

比如在公司的repository下

git config user.name "yourname"

git config user.email "youremail"

在自己的github的仓库在执行刚刚的命令一遍即可。

这样就可以在不同的仓库,已不同的账号登录。

如何把本地项目上传到远程的空项目上

  • git remote add origin 远程仓库地址
  • 如果提示已有 origin 则先删除 git remote remove origin
  • git push origin <分支名>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,379评论 0 7
  • 一.Git简介 Git是世界上最先进的分布式版本控制系统,相对于SVN这样的集中式版本控制系统,Git不需要“中央...
    ahuustcly阅读 708评论 0 0
  • 版本控制 你可以把一个版本控制系统(缩写VCS)理解为一个“数据库”,在需要的时候,它可以帮你完整地保存一个项目的...
    ColleenKuang阅读 287评论 0 1
  • windows git下载网址 mac不用下载自带 git命令 git init 初始化仓库 git status...
    codeTao阅读 298评论 0 0
  • Git笔记 从廖雪峰的官方网站学习git后的总结。 Git介绍 Git是分布式版本控制系统 集中式VS分布式,SV...
    CodeUpBetter阅读 315评论 0 2