git 学习记录

什么是git ,git是一个分布式版本控制工具 ,而svn 是 集中式

给当前的git仓库配置用户名和邮箱
  • 配置用户名 git config user.name "cgm"

  • 配置邮箱 git config user.email "cgm@163.com"

  • 给git配置全局用户名 git config --global user.name "cgm"

  • 给git配置全局邮箱 git config --global user.email "cgm@163.com"
    查看git 的配置。可以在 选择,前往 -> 个人- > 个人下面的 .gitconfig 隐藏文件进行查看

工作原理
  • 工作区 :仓库文件夹除了.git 以外的内容

  • 版本库: .git 目录。存取版本信息

    1. 暂缓去(stage)
    2. 分支(master): git 自动创建第一个分支
    3. HEAD指针: 用于指向当前的分支
  • git add 和 git commit 原理
    git add :把修改的文件或者添加的内容添加到暂缓区
    git commit :把暂缓区的内容提交到 HEAD指针指向分支

image.png
  1. 加载到暂缓区 git add main.m ,查看状态,发现是绿色,绿色代表,在暂缓区但没有提交到本地仓库
    那么如何移除到暂缓区呢 git rm --cached main.m ,把main.m 移除暂缓区
  2. git commit -m "把暂缓区提交到本地仓库"
  3. 修改main.m 后。查看状态,会提示 Changes not staged for commit: ,修改了。但是没有提交到暂缓区
  4. commit 提交到暂缓区 会提示 1 file changed, 1 insertion(+)
    一个文件,被修改。 1 条插入
初始化项目

选择了指定目录 gitTest。 在控制台 git init 创建,在此目录下,我们创建一个 .m 文件。touch main.m ,然后我们查看状态 git status 和查看目录

可以看到
image.png
没有加载到缓冲区,和 目录结构
image.png
给命令行起别名,比如给git status 起别名
  • git config alias.st "status" 下次查看直接 git st 即可
  • git config --global alias.st "status" 给全局起别名。在.gitconfig可查看


    image.png
删除文件

git rm main.m 将main.m 删除

查看版本号
  1. git log 版本号sha1 算法生成的 40 位的哈希值


    image.png
  2. git reflog 可以查看所有版本回退的操作


    image.png

版本回退 。

  • git reset --hard HEAD 回到当前的版本
  • git reset --hard HEAD^ 回到上一个版本
  • git reset --hard HEAD^^ 回到上上个版本
  • git reset --hard HEAD~10 回到前10个版本
  • git reset --hard 版本号 (想回到某个版本)

回滚版本注意

  • git reset --hard HEAD^ 回到上一个版本
  • git push -f 强制推送 ,上传到共享版本库
  • git reset --hard HEAD^ 同事也要,回到上一个版本。一起合作才能回滚到上个版本
    也可以给log起别名。百度收一下写法
创建共享版本库
  1. 在指定的目录或者文件下面。控制台 输入 git init --bare


    image.png
  2. git clone 共享版本的地址 clone /Users/cgm/Desktop/test/share

  3. 添加忽略文件 ,在我们clone 的文件目录下面 touch.gitignore
    忽略文件https://github.com/github/gitignore 可再次找到

  4. 可以模拟多个角色,clone 我们初始化的项目

  5. image.png

    多个角色开发的时候,push出现这个错误,就是不是最新的版本,有其他人提交过,我们需要pull 更新一下

  6. 如果pull,2边有冲突
    image.png

备份 和 tag

  1. 打tag
  • git tag -a product1.0 -m "这是1.0版本"
  • git tag 查看
  1. push 到共享版本库
    git push origin product
  2. 其他开发人员想看tag 的时候 git pull 然后 git tag 查看

创建分支和查看分支

git checkout -b test1.0 //创建分支并切换到该分支
git branch 查看分支
git branch -r 查看分支
git checkout master 切换分支
git push origin test1.0 提交到共享版本库分支

删除本地分支

git branch -d test1.0 删除本地分支
git branch -r -d origin/test1.0 删除本地分支
git push origin --delete test1.0 删除共享仓库分支

GitHub 验证方式

  1. 账号匹配


    image.png

2,SSHkeys认证

  1. 公钥:存在GitHub 解密
  2. 秘钥:存在本地的一个.ssh文件夹用来加密

如何配置公钥秘钥,github 也有介绍

  1. ls -al ~/.ssh 查看本地是否有.ssh
  2. ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    生成 .ssh
  3. 点击前往-> 个人-> 个人文件下面有个.ssh 隐藏文件


    image.png
/Users/chenguimin/.ssh
zwcMacBook-Pro:.ssh chenguimin$ ls
id_rsa(私钥)      id_rsa.pub(公钥)  known_hosts
zwcMacBook-Pro:.ssh chenguimin$ ssh-add id_rsa //添加私钥
Enter passphrase for id_rsa:  //输入密码即创建ssh时候输入的秘钥
Bad passphrase, try again for id_rsa: 
Bad passphrase, try again for id_rsa: 
Bad passphrase, try again for id_rsa: 
Identity added: id_rsa (id_rsa)

  1. image.png

    文本打开 id_rsa.pub 复制里面的内容

  2. 在github 设置


    Snip20180401_19.png

    添加即可设置,公钥

参考 此篇配置 ssh 文章

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

推荐阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,874评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,913评论 0 11
  • 操作系统 window10学习来源: http://www.liaoxuefeng.com/wiki 常用 创建...
    hopevow阅读 784评论 0 17
  • 网络状态改变的监听方法 通过苹果苹果提供的Reachability类来实现监听注意 : 这个类通常情况下,要想实现...
    Mario_ZJ阅读 432评论 0 0
  • 心里总是不舒服,觉得有东西堵着,还是尝试把它写出来看能不能发现什么,解决一点是一点。 不确切知道心里怎么了,我说过...
    Da_lj阅读 116评论 0 0