git指令与知识点

Git结构:

  1. 工作区
    用来写代码的地方,工作区可以提交代码到暂存区
  2. 暂存区
    用来临时存储要提交的东西,暂存区可以将里面的东西放到本地库
  3. 本地库
    用来存放开发过程的东西,可以进行历史版本的管理

本地库操作:

  1. 本地库初始化
    1. 新建一个目录
    2. 使用 git init 来在目录下初始化一个 git 仓库, git 库文件是隐藏的
    3. 签名设置
      1. 设置项目级签名

        使用 git config user.name 你的签名

        使用 git config user.email 你的邮箱,这个选填

        项目级签名信息存放在 “项目名/.git/config” 下
      2. 使用系统级签名

        使用 git config --global user.name 你的签名

        使用 git config --global user.email 你的邮箱

        系统级签名信息存放在 "C:/user/用户名/.gitconfig"下
      3. 区别:当有项目级签名时会使用项目签名否则会使用系统级签名,系统级签名是兜底的,项目级签名在系统中有很多个,而系统级签名只有一个
  2. 基本操作
    1. git status 这个命令可以用来查看工作区,暂存区的状态

      git rm --cached [file] 这个命令可以将文件从暂存区移出去
    2. git add [file name] 这个命令来将文件"新建 修改"到暂存区
    3. git commit -m “commit message” [file name] 这个命令来将暂存区中的文件上传到本地库
    4. git log 查看历史版本

      git log --pretty=oneline 每条记录只展示一行

      git log --oneline 每条记录展示一行,且只展示一点

      git reflog 多展示当前记录离现在使用的记录有多少步
    5. git reset --hard [版本哈希值] 可以将代码恢复到历史的状态

      git reset --hard HEAD^ 后退一步,可以写多个 ^ 符号,一个 ^ 符号代表后退一步

      git reset --hard HEAD~[数字] 后退N步,数字写几就后退几步

      git reset 参数:
      1. –hard :会重置暂存区,工作区,最常用的就是 --hard 参数
      2. –mixed :会移动工作区的Head指针暂存区也会变的和hard一样
      3. –soft :只是将工作区的Head指针移动
      4. 文件删除后,若删除前将文件提交到本地库中,则可以使用 rm [flie name] 指令删除文件然后使用 git reset 指令将数据恢复回来
    6. git diff [file name] 可以将 参数的文件 与暂存区的同名文件进行比较

      git diff HEAD [file name] 可以将 参数的文件 本地库的 HEAD 指向的文件比较
  3. 分支管理

    分支可以让多个项目同时推行,互不干扰,当修改完时还可以将分支合并到主分支,这样就可以提高开发效率
    1. 分支操作
      1. 创建分支 git branch [分支名]
      2. 查看分支 git branch -v
      3. 切换分支 git checkout [文件名]
      4. 合并分支

        第一步:切换到要合并到的分支上

        git checkout [分支名] 切换分支

        第二步:执行 merge 命令,来合并其他分支

        git merge [分支名] 合并合并分支
    2. 分支冲突

      当分支合并时若两个分支都修改了文件,这时会出现冲突,这时就需要人工处理冲突,步骤
      1. 解决冲突的地方
      2. 使用 git add 将冲突的文件放到暂存区
      3. 使用 git commit -m “提示信息” 将文件放到本地库就算解决冲突了

远程库操作:

  1. 先在github上创建库,库如果是共有(public)的那么任何人都有读权限,若是私有的那么只有小组内成员才有读取权限,复制库的 HTTPS 链接
  2. 给因为连接太长了,所以给库创建别名,别名最好和本地库的名是一样的
    1. 使用 git remote -v 来查看别名
    2. 如果没有别名可以使用 git remote add [别名] [库的链接] 就可以给库创建别名
  3. 将本地别名推送到远程库,可以使用 git push [远程库的别名] [本地分支名] 来推送分支
  4. 拉取远程库的代码到本地库,使用 git pull [远程库的别名] [要拉取的分支名]:[本地分支名] 来拉取分支
  5. 克隆代码,使用 git colone 可以将代码克隆到本地库

    若克隆的库是公有的库,那么不需要登录账号就可以克隆,若是私有的库需要登录小组内成员才可以

    克隆指令做三件事:1.初始化仓库 2.将远程库都导入到新建的本地库 3.自动创建远程库别名,别名叫origin
  6. 团队内协作:使用 github 则需要仓库拥有者先将其他人拉入小组内:

    点击 Settings 下的 Collaborators 下的 Manage access 来添加Github用户,然后有一个邀请函需要让对方在github登录账号的情况下进入邀请函地址.

    对方登录后并打开邀请函后点击 Accept invitation 是接受, Decline 是婉拒
  7. 跨团队协作:在 github 下,可以使用右上角的 fork 按钮将项目叉到自己的账号下,这就变成了自己的远程库,以后就可以将这个远程库 clone 到自己的本地库

    要想将自己的远程库放到对方的原来的远程库中可以使用项目中的 Pull requests 来申请将代码提交回去
  8. SSH免登录:
    1. 新建SSH公钥和私钥,在 C:/user/用户名 下使用 ssh-keygen -t rsa -C [描述] 代码来创建SSH公钥和私钥

      创建完成后会在C:/user/用户名目录下看到.ssh文件夹,.ssh文件夹下有两个文件id_rsa和id_rsa.pub

      其中id_rsa里面保存的是私钥,id_rsa.pub里面保存的是公钥
    2. 在github下的用户菜单下的 Settings 下的 SSH and GPG keys 下的 [NEW SSH key] 按钮来对账户添加ssh公钥,点击后可以在 Key 下添加你的ssh公钥,再点击 [Add SSH key] 按钮就可以了
    3. 复制远程库的 SSH 链接
    4. 然后就可以使用 SSH 链接进行免密登录的 pull 和 push 操作了

你可能感兴趣的:(git)