git 学习记录

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

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

  • 配置邮箱 git config user.email "[email protected]"

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

  • 给git配置全局邮箱 git config --global user.email "[email protected]"
    查看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 "[email protected]"
    生成 .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 文章

你可能感兴趣的:(git 学习记录)