四、git命令集合,getee配置密钥方法,

293 阅读6分钟

使用git拉取自己想要的单个文件(文件夹)

1.  创建一个空的本地仓库(空文件夹)
 git init
2:  连接远程仓库GitHub
 git remote add -f origin “拉取的仓库地址”
3:4.  开启sparse checkout 模式
git config core.sparsecheckout true
5.  告诉Git哪些文件或者文件夹是你真正想下载的
echo 你要的文件名 >> .git/info/sparse-checkout
6.  拉取想要的分支
git pull origin master

常用git命令

基础操作:

git init                   初始化仓库
git add .                  提交暂存区
git commit -m "XXXXX"      提交到本地仓库
git stauts -s              查看文件状态
git log/reflog             查看提交日志
git reset --hard 版本号    版本切换:
git revert -n   版本号     撤销某个版本内容的内容修改 

在利用git实现多人合作程序开发的过程中,我们有时会出现 错误提交 的情况,

此时我们希望能撤销提交操作, 或者想要回退到某个版本

reset => 回退到某个版本 git reset --hard 版本号

revert => 撤销某个版本内容的内容修改 git revert -n 版本号

分支操作

git branch             查看分支
git branch             创建分支
git checkout           切换分支
git  checkout -b       创建并切换分支
git merge  xxxx        主分支合并功能分支

提交远程仓库

git remote add origin HTTPS/ssh 地址
git   push -u origin  master
git   push -f origin  master
git  remote -v                 查询变量中存储的地址
git  remote  rm  origin        删除变量

如果git reset 后, 版本回退了, 无法直接push 到远程仓库(因为远程仓库版本更加新) => git push -f 覆盖推送即可 多人协作开发

git clone  https/ssh地址              克隆仓库
git pull  origin   分支名称           拉取远程仓库分支里面最新代码
git remote  show origin              查看远程仓库分支
git  checkout  远程分支               跟踪分支(切换主分支拉取最新代码)
.gitignore                           固定文件名,在这个文件中的目录文件可以忽略,脱离git的管理
git  branch  -d                      跟上要删除的分支名     -d 小d只能删除合并后的分支
git  branch  -D                      跟上要删除的分支名      -D 大D他跟-d不同的就是可以删除没有合并后分支。

实际开发Git工程化

每个公司git流程都有一定的差别,接下来介绍一个名为 GitFlow 的 git 标准化操作流程。

GitFlow 标准下,我们的 git 仓库需要包含以下几个关键分支

  • master:主分支
  • develop:主开发分⽀。包含确定即将发布的代码
  • feature:新功能分⽀。⼀个新功能对应⼀个分⽀
  • release:发布分⽀。发布时⽤的分⽀,⼀般测试阶段发现的 bug 在这个分⽀进⾏修复
  • hotfix:热补丁分支。用于修改在线上版本中发现的严重紧急 bug

GitFlow 的主要优点

  • 支持并⾏开发

因为每个新功能都会建⽴⼀个新的 feature 分⽀,从⽽和其他已经完成的功能隔离开,

且当只有在新功能完成开发的情况下,其对应的 feature 分⽀才会被合并到主开发分⽀(develop 分支)。

另外,如果你正在开发某个功能的同时⼜有⼀个新功能需要开始开发,那么你只需把当前 feature 的代码提交后,

切回 develop 分支, 新建另外⼀个 feature 分⽀即可开发新功能了。

你也可以随时切回之前的其他 feature 分⽀继续完成该功能的开发。

  • 协作开发

因为每个 feature 分⽀上改动的代码都只对该 feature 对应的功能生效,

所以不同 feature 分支上的代码在开发时不会互相影响,大家可以相安无事的开发自己负责的功能。

同时我们可以根据分支的名称,很容易知道每个⼈都在做什么功能。

  • ⽀持紧急修复

hotfix 分⽀是从某个已经发布的仓库版本基础上创建出来,用于紧急修复 Bug。

该紧急修复只影响这个已经发布的仓库版本,⽽不会影响你正在开发的其他新 feature 。

注意点

  1. feature 分⽀都是从 develop 分⽀上创建的,开发完成后再合并到 develop 分⽀上,等待发布

  2. 当需要发布时,我们要从 develop 分⽀上创建⼀个 release 分⽀,然后该 release 分⽀会发布到测试环境进⾏测试。

    如果发现问题的话,就会直接在该分⽀上进⾏修复。

    所有问题修复之前,会不停重复 发布 > 测试 > 修复 > 重新发布 > 重新测试 流程。

    发布结束,该 release 分⽀会被合并到 develop 以及 master 分⽀,从⽽保证不会有代码丢失

  3. master 分⽀只跟踪已经发布的代码,合并到 master 上的 commit 只能来⾃ release 分⽀和 hotfix 分⽀

  4. hotfix 分⽀的作⽤是紧急修复⼀些 Bug,它们都是从 master 分⽀上的某个版本建⽴,

    修复结束后再被合并到 develop 和 master 分⽀上

流程图

image.png

大概流程

image.png

Git的rebase和merge的区别是什么?

merge

merge 会⾃动创建⼀个新的 commit, 如果合并时遇到冲突的话,只需要修改后重新 commit

  • 优点:能记录真实的 commit 情况,包括每个分⽀的详情

  • 缺点:由于每次 merge 会⾃动产⽣⼀个 merge commit

    因此在使⽤⼀些可视化的 git 工具时会看到这些自动产生的 commit

    这些 commit 对于程序员来说没有什么特别的意义,多了反而会影响阅读

rebase

rebase 会合并之前的 commit 历史。

  • 优点:可以得到更简洁的提交历史,去掉了 merge commit
  • 缺点:因为合并而产生的代码问题,就不容易定位,因为会重写提交历史信息

建议

  • 当需要保留详细的合并信息,建议使⽤ git merge, 尤其是要合并到 master 上
  • 当发现⾃⼰修改某个功能时提交比较频繁,并觉得过多的合并记录信息对自己来说没有必要,那么可尝试使用 git rebase

getee生成公钥和私钥的方法

1: 生成ssh 公钥:命令行中输入 ssh-keygen -t rsa -b 4096 -C "自己的邮箱名 " 。如果不知道邮箱 名,可以去getee官网中个人首页下面的邮箱管理查看。然后在命令窗口回车3次。

33.png git1.png

2:回车三次后,就会在本地的用户文件夹中会自动生成一个名叫.ssh文件夹 ,到C盘的用户文件下找到.ssh文件文件夹里面就产生了公钥,接下来就配置公钥

4.png ** 3: 配置ssh公钥:这时候打开这个.ssh 这个文件夹,里面会有“id_rsa”(私钥)和“id_rsa.pub(公钥)” ,然后打开后缀为pub这个文本,复制里面的代码,然后到个人中心右侧设置功能=>ssh公钥配置=>然后粘贴代码到公钥文本框中即可。**

2.png

** 4检测:输入命令:ssh -T git@github.com,如果是码云就是 ssh -T git@gitee.com **