zoukankan      html  css  js  c++  java
  • git的使用,本地代码提交远程仓库

    1. 安装git

    地址: https://git-scm.com/about
    右键鼠标会显示这两个选项,一般使用 Git Bash Here
    image


    ***

    2. 拉取项目代码

    鼠标右键选中 Git Bash Here(以下命令均在Bash中操作)
    输入 git clone xxx xxx表示项目的路径


    ***

    3. 配置SSH公钥以及私钥

    原因: 如果不配置,每一次使用 git pull or git push 都需要输入账号和密码
    配置方法:

    1. 查看是否已经生成公钥和私钥
      cd ~/.ssh进入相应目录 一般情况下 密钥存放在 ~/.ssh目录下
      ls 打印该目录文件
      如果显示 id_rsa、 known_hosts、 id_rsa.pub 等文件,表示已经生成过SSH密钥
      其中 id_rsa.pub 即使公钥文件,id_rsa 是与之对应的私钥文件
      如果没有显示上述文件,继续往下执行
    2. 通过运行 ssh-keygen 程序来创建它们
      ssh-keygen -t rsa -b 4096 -C "your_email@example.com" rsa是密钥类型,4096是密钥字节数
      会有如下提示:
    Generating public/private rsa key pair.
    Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa):	// 表示密钥的存储地址,回车
    Created directory '/c/Users/xxx/.ssh'.
    Enter passphrase (empty for no passphrase):		// 输入一次密码(最好直接回车,否则pull/push操作仍然需要输入密码)
    Enter same passphrase again:					// 再次输入密码
    Your identification has been saved in /c/Users/xxx/.ssh/id_rsa.
    Your public key has been saved in /c/Users/xxx/.ssh/id_rsa.pub.
    

    如果已经存在,会提示 Overwrite(y/n)? 选择y即可重置
    通过以上操作即可生成公钥和私钥
    3. 查看公钥: cat ~/.ssh/id_rsa.pub
    4. 将公钥添加到远程托管平台(github)
    /c/Users/xxx/.ssh/id_rsa.pub 内容复制到 github > 个人头像 > Settings > SSH Keys > 粘贴公钥,并点击 Add key 按钮
    5. 最后使用 git clone sshUrl 尝试一下


    ***

    git的使用

    1. 针对相应bug编号创建 feature-xxx (基于master创建)分支 (有 create branch 按钮)
    2. 针对个人 创建 name-xxx分支 (基于上一步创建的feature分支)
    3. 本地 git pull 更新远程状态到本地
    4. 本地 git branch -a 查看所有分支
    5. 本地 git checkout name-xxx 切换到属于当前bug的个人分支上
    6. 本地 git status 查看项目的修改情况 (vs code 左边目录栏第三个 Source Control 也可以查看,但是需要先 git status 然后刷新一下(点击 Refresh))
    7. 本地 git add . 添加内容到本地缓存(此处的 .表示当前目录下的所有需要add的文件,因此可以add指定目录文件)
    8. 本地 git commit -m "bug简介" 提交内容到本地缓存(此时还没有上传到远程仓库)
    9. 本地 git push 即是将本地提交的内容上传到远程仓库中
    10. 远程仓库中查看,并进行合代码操作 (点击 create merge request 查看changes,并合到指定分支上)

    ***

    git不同文件状态表示的含义

    1. 正常的: 绿色的对号
    2. 被修改过的: 红色感叹号
    3. 新添加的: 蓝色的加号
    4. 未受控的( 无版本控制的): 蓝色的问号
    5. 忽略不受控的 :灰色的减号
    6. 删除的:红色的x号
    7. 有冲突的: 黄色的感叹号

    ***

    git 避免add不需要的文件

    目的: 比如 node_modules、dist等文件我们不想提交
    方法: 使用 .gitignore 文件

    .DS_Store
    node_modules
    /dist
    
    # local env files
    .env.local
    .env.*.local
    
    # Log files
    npm-debug.log*
    yarn-debug.log*
    pnpm-debug.log*
    yarn-error.log*
    
    # Editor directories and files
    .idea
    .vscode
    *.suo
    *.ntvs*
    *.njsproj
    *.sln
    *.sw?
    

    注意: .gitignore文件 需要单独先提交一遍push,否则不生效


    ***

    其他

    git rm --cached ./xxx 删除缓存中的某某文件(提交push后该文件在远程也会被删除)
    所以,对于错误add的文件如何还原,需要考虑


    ***

    分支的操作命令

    • git branch 查看本地分支
      git branch -a 查看本地和远程分支
      git checkout xxx 切换分支
      git switch xxx 切换分支
      git branch xxx 创建分支(本地)
      git checkout -b xxx 创建本地分支,并切换到此分支
      git switch -c xxx 创建+切换分支
      git branch -d xxx 删除分支

    • 推送本地分支local_branch到远程分支 remote_branch并建立关联关系
      git push 远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到local_branch
      git push --set-upstream origin remote_xxx 将本地分支关联到远程分支(这样本地代码才能提交到远程)远程已有分支,但是并未关联本地分支

      git push origin local_xxx:remote_xxx 远程没有分支,本地已经切换到local_xxx分支
      git push origin xxx 推送代码到远程分支
      git push 单纯这样操作不行

    • git push origin :xxx 这个是删除分支

      git push origin --delete xxx 这个也是删除

      git branch -d xxx 也是删除

    • git merge feature-xxx 合并某分支到当前分支
      注意: 在当前分支上创建分支,是能够继承这个分支的代码的(所以要在需要的分支上创建分支)


    ***

    创建分支、关联分支、代码提交

    1. git branch 首先查看分支
    2. git checkout xxx 切换分支(以此分支作为新分支的模板)
    3. git checkout -b xxx 创建本地分支,并切换到此分支
    4. git push --set-upstream origin remote_xxx 将本地分支关联到远程分支(这样本地代码才能提交到远程)远程已有分支,但是并未关联本地分支
    5. git push origin xxx 推送代码到远程分支
    6. git merge feature-xxx 合并某分支到当前分支

    参考链接
    https://www.jianshu.com/p/e93edea128a3
    https://www.cnblogs.com/lz0925/p/10725010.html
    https://www.cnblogs.com/zhahuhu/p/11587429.html
    https://blog.csdn.net/zhangxingyu126/article/details/79169694
    https://git-scm.com/book/zh/v2/服务器上的-Git-生成-SSH-公钥

  • 相关阅读:
    js 变量的声明能提升 初始化不会提升
    老公教我写分页
    响应式布局
    闭包优缺点
    正则表达式验证邮箱格式
    DDL表和库管理语言
    DML数据库操作语言
    python实现求第K小
    硬币凑数
    MySQL学习的表单定义
  • 原文地址:https://www.cnblogs.com/nangezi/p/14710899.html
Copyright © 2011-2022 走看看