这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记
Git学习
01.git是什么
- git:是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
1.1版本控制
- 版本控制:一种记录一个或者若干个文件内容变化,以便将来查阅特定版本修订情况的
- 作用:了解到每个版本的改动是什么,回滚误删误改的代码
git基本原理:
- 每个库都有完整的提交历史,可以直接在本地进行代码提交
- 每次提交记录的都是完整的文件快照,而不是记录增量
- 通过Push等操作来完成和远端代码的同步
优点:
- 分布式开发,每个库都是完整的提交历史,强调个体
- 分支管理功能强大,方便团队之间合作,多人协同
缺点:
对大文件的支持不是很好(git-lfs可以解决)
1.2git发展历史
02.git基本使用方式
- 新建一个项目文件夹,并切换目录
- 初始化:
git init - 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
- 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
- git ssh
ssh-keygen -t ed25519 -C "934324304@qq.com"
复制到github new sshkey
- git add
git add .
- Git commit
git commit -m "add readme"
- 新分支
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
合并即可