这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
代码托管
负责管理公司内数十万的代码仓库,并在这之上对代码管理的相关功能进行迭代,提升研发活动的效率及质量
代码智能
提供更准确高效的代码搜索能力和代码导航能力,支持多种场景下的代码跳转,帮助用户更高效的去阅读代码
代码分析
提供一种代码检查能力,目的是在整个研发流程中自动的发现并反馈代码中存在的代码结构、代码漏洞、代码风格等问题
持续集成
一种软件开发实践,团队成员频繁将他们的工作成果集成在一起。每次提交后,自动触发运行一次包含自动化验证集的构建任务,以便能尽早发现集成问题
Cloud IDE
一个开箱即用的云端开发环境,支持 node/python/go/iava/c++ 等多种编程语言你可以在云端开发环境中编写、编译、运行和调试你的项目
协同工作
业界绝大多数公司都是基于 Git 进行代码管理,,因此 Git 是一个程序员的必备技能
开源社区
目前绝大多数的开源项目都是基于 Git 维护的,参与这些项目的开发都需要使用 Git.
Git命令
配置
git config
git remote
提交代码
git add
git commit
远程同步
-
拉取代码
- clone
- pull
- fetch
-
推送代码 push
项目初始化
mkdir study
cd study
git init
其他参数
常见的Git配置
用户名配置
git config --global user.name “liaoxingju' git config --global user.email liaoxingju@bytedance.com
instead of配置
git config --global url.git@github.com.insteadOf github.com/
Git 命令别名配置 git config --global alias.cin "commit --amend --no-edit'
Git Remote
-
查看 Remote git remote -V
-
添加 Remote git remote add origin ssh git@github.com:git/git.git
-
git remote add origin http github.com/git/git.git
免密配置
- SSH 可以通过公私钥的机制,将生成公钥存放在服务端,从而实现免密访问
- 目前的 Key 的类型四种,分别是 dsa、rsa、 ecdsa、 ed25519默认使用的是 rsa, 由于一些安全问题,现在已经不推荐使用 dsa 和 rsa 了,优先推荐使用 ed25519
- ssh-keygen -t ed25519 -C" your email@example.com” 密钥默认存在 ~/.ssh/id ed25519.pub
Git Add
git add readme.md
Git Commit
git commit -m “add readme"
Objects
commit / tree / blob 在 git 里面都统一称为 Object,除此之外还有个 tag 的 object.
Blob
存储文件的内容
Tree
存储文件的目录信息
Commit
存储提交信息,一个 Commit 可以对应唯一版本的代码
-
通过 Commit 寻找到 Tree 信息,每 Commit 都会存储对应的 Tree ID
-
通过 Tree 存储的信息,获取到对应的目录树信息
-
从 tree 中获得 blob 的 ID,通过 Blob ID 获取对应的文件内容
Refs
-
refs 的内容就是对应的 Commit ID因此把 ref 当做指针,指向对应的 Commit 来表示当前 Ref 对应的版本
-
不同种类的 ref refs/heads 前缀表示的是分支,除此之外还有其他种类的