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的文件如何还原,需要考虑

参考链接
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-公钥

相关文章

本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不...
本文小编为大家详细介绍“怎么将工程托管到gitee”,内容详细...
这篇文章主要介绍了gitee中图片大小如何调整的相关知识,内容...