Git学习:day5|青训营笔记

63 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记

Git学习

01.git是什么

  • git:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

1.1版本控制

  • 版本控制:一种记录一个或者若干个文件内容变化,以便将来查阅特定版本修订情况的
  • 作用:了解到每个版本的改动是什么,回滚误删误改的代码

git基本原理:

  1. 每个库都有完整的提交历史,可以直接在本地进行代码提交
  2. 每次提交记录的都是完整的文件快照,而不是记录增量
  3. 通过Push等操作来完成和远端代码的同步

优点:

  1. 分布式开发,每个库都是完整的提交历史,强调个体
  2. 分支管理功能强大,方便团队之间合作,多人协同

缺点:

对大文件的支持不是很好(git-lfs可以解决)

1.2git发展历史

02.git基本使用方式

  1. 新建一个项目文件夹,并切换目录
  2. 初始化:git init
  3. tree .git
.git

├── branches

├── config

├── description

├── HEAD

├── hooks

│   ├── applypatch-msg.sample

│   ├── commit-msg.sample

│   ├── fsmonitor-watchman.sample

│   ├── post-update.sample

│   ├── pre-applypatch.sample

│   ├── pre-commit.sample

│   ├── prepare-commit-msg.sample

│   ├── pre-push.sample

│   ├── pre-rebase.sample

│   ├── pre-receive.sample

│   └── update.sample

├── info

│   └── exclude

├── objects

│   ├── info

│   └── pack

└── refs

    ├── heads

    └── tags
  1. git remote:
ikbye@ubuntu:~/GoPath/src/gitdemo$ git remote add origin_ssh git@github.com:git.git

ikbye@ubuntu:~/GoPath/src/gitdemo$ git remote add origin_http http://github.com/git/git.git

ikbye@ubuntu:~/GoPath/src/gitdemo$ git remote -v
  1. git ssh

ssh-keygen -t ed25519 -C "934324304@qq.com"

复制到github new sshkey

  1. git add

git add .

  1. Git commit

git commit -m "add readme"

  1. 新分支

git checkout -b test

Git Clone Pull Fetch

clone:拉取完整的仓库到本地目录,可以指定分支深度.

fetch:将远端某些分支最新代码拉取到本地,不会进行merge操作

会修改refs/remote 内的分支信息,需要和本地代码合并需要手动操作.

Pull :拉取远端某分支,并和本地代码进行合并,

Push: 将本地代码同步至远端

03.git研发流程

分支管理工作流 - github flow

git clone git@github.com:ikbye/gitdemo.git

vim readme

git add .

git commit -m "add readme"

git push origin master

在创建另一个分支branch

进行更改

然后bush

合并即可