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

理解暂存区和未暂存区

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

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

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

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

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

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

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

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

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

各操作解析:

在这里插入图片描述
最后在终端上我们可以使用:
git status 来查看:

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

示例输出如下:

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从远程仓库拉取最新的提交到本地仓库,但不会自动合并到当前分支。需要手动合并

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部