项目工具|git相关

本博客暂时只作为个人资料,后续会进行完善,主要内容来自:
【【Git第一讲】:git分区与两个盒子的故事】

理解暂存区和未暂存区

git为什么要多一个暂存区?难道不能我把代码写完后就是未暂存区,然后直接提交到版本库吗?

比如说我现在开发了很多的代码,

比如说在file1中,我们开发完成了功能A、功能B的50%和功能C,

然后我们在file2中完成了功能B的另外50%。

我们现在如果想直接提交到版本库,在commit的时候,我们应该把所有的代码改动都应该说清楚,鉴于我们所改动的代码较多,一个commit感觉有点难说明白,因为我们在file1中开发了这老些功能,然后有的还没开发完,随后我们在file2中又开发完了a中没有完成的部分,你应该怎么描述这个commit呢?

如果我们一起行直接把所有代码全部提交到暂存区中,会导致我们的代码非常乱。

所以说:
如果没有暂存区,那么我们只能把多文件的,大量的代码进行一次性的提交

现在又了暂存区,我们可以选择暂存部分、单独的文件,甚至我们可以只暂存某些行甚至一行!!!!!

如果对于某一个功能,我们涉及到了数十个文件,并且在文件中互相参杂着别的功能的代码,这样我们就能非常清晰得完成功能B的上传,先单独把功能b上传到暂存区,然后commit信息"完成了功能B的开发",随后把暂存区代码上传到版本库。

各操作解析:

最后在终端上我们可以使用:
git status 来查看:

  • 已暂存的梗菜(将要被提交)
  • 尚未暂存的更改(也就是已经修改但出于未暂存区)
  • 未跟踪的文件

示例输出如下:

sh 复制代码
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   file1.txt
        modified:   file2.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   file3.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        file4.txt
  • Changes to be committed: 列出已经暂存的文件,这些文件将包含在下次提交中。可以使用 git restore --staged 来取消暂存。
  • Changes not staged for commit: 列出已经修改但尚未暂存的文件。可以使用 git add 将这些文件添加到暂存区。
  • Untracked files: 列出未被 Git 跟踪的文件。可以使用 git add 将这些文件添加到暂存区并开始跟踪

变基or合并、如何撤销变基和合并

其实合并和变基做的是一样的操作。

那么为什么我们应该选择变基而不是合并呢?

合并会让各个分叉做连线,非常丑,所以我们应该做变基。

自行到 gittree 实验即可

面对冲突要么妥协要么解决

只要修改不在同一个文件的同一个位置,就不会引起冲突。

当两个分支同时对某一个同一个位置的代码作出修改的时候,我们到底应该如何把两个分支代码合并到一起。

妥协

妥协指的是妥协于其中一个冲突

解决冲突

A分支和B分支同时修改了一个地方,他们两个代码都有用,但是我要重新调整一下组织形式,所以说我们就把代码改一改再提交。我们称为解决冲突。

git和github

  1. 如何将本地与远端建立联系:SSH
    1. 查看电脑中是否存在ssh的key ls -al ~/.ssh,应该关注
    2. 如果没有就进行创建:ssh-keygen -t rsa -b 4096 -C "caiziming0011@gmail.com"
    3. 添加ssh私钥到ssh代理(不添加也可以),启动ssh代理eval "$(ssh-agent -s)",然后将私钥添加到ssh代理ssh-add ~/.ssh/id_rsa
    4. 将公钥添加到 github 上。cat ~/.ssh/id_rsa.pub
    5. 验证是否连接成功:ssh -T git@github.com
    6. 如果失败:
  2. 将 git_study 仓库推到远端(origin是远端仓库名,可以起别的名字但是一般用这个)
    1. git remote add origin git@github.com:hong-kailin/git study.git 将名为 origin 的远程仓库与指定的 GitHub 仓库地址关联起来
    2. git remote set-url origin git@github.com:czm-tech1/guttest.git
    3. git branch -M master 将当前分支重命名(不是必须)
    4. git push -u origin master 将master分支关联到origin(master也可以是别的分支)
  3. 其他常用命令
    1. git remote -v查看远程连接
    2. git remote remove origin 取消与远程仓库的连接
    3. git push 将本地的提交推送(上传)到远程仓库
    4. git pull origin master从远程仓库拉取(下载)最新的提交到本地仓库,并自动合并到当前分支
    5. git fetch origin从远程仓库拉取最新的提交到本地仓库,但不会自动合并到当前分支。需要手动合并
相关推荐
IT古董6 小时前
【开源向量数据库】Milvus简介
数据库·开源·milvus
web150850966416 小时前
SQL 建表语句详解
java·数据库·sql
宇智波云7 小时前
mysql增加字段操作以及关键字报错
java·数据库·mysql
怠惰_u7 小时前
使用Redis实现分布式锁,基于原本单体系统进行业务改造
数据库·redis·分布式
lozhyf7 小时前
后端开发:高效数据库查询优化实战指南
数据库·oracle
云泽野7 小时前
50道题快速复习MySQL之准备篇
数据库·mysql·oracle
林林总肿7 小时前
Mybatis后端数据库查询多对多查询解决方案
数据库·spring boot·mybatis
jay丿7 小时前
Redis简介
数据库·redis·缓存
格雷亚赛克斯8 小时前
Qt笔记31-69
数据库·笔记·qt
梦醒沉醉9 小时前
HBase Shell
大数据·数据库·hbase