使用Git

92 阅读2分钟

Git基本命令: 配置:git config、git remote 提交代码:git add、git commit 远端同步:①拉取代码:clone、pull、fetch;②推送代码:push。

项目初始化:mkdir study 、cd study、git init 其他参数 --initial-branch 初始化的分支 --bare 创建一个裸仓库(纯Git目录,没有工作目录) --template 可以通过模版来创建预先构建好的自定义git目录

常见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" 查看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 同一个Origin设置不同的Push和Fetch URL

Objects commit / tree / blob 在 git 里面都统一称为Object,除此之外还有个 tag 的object. Blob:存储文件的内容 Tree:存储文件的目录信息 Commit:存储提交信息,一个Commit可以对应唯一版本的代码。 1.通过Commit寻杂到Tree信息,每个Commit都会存储对应的Tree ID。 2.通过Tree存储的信息,获取到对应的目录树信息。 3.从Tree中获得blob的ID,通过Blob ID获取对应的文件内容。

Refs: refs的内容就是对应的Commit ID 因此把 ref当做指针,指向对应的Commit来表示当前Ref 对应的版本。 不同种类的ref refs/heads前缀表示的是分支,除此之外还有其他种类的ref,比如refs/tags前缀表示的是标签。 Branch git checkout 一b 可以创建一个新分支 分支—般用于开发阶段,是可以不断添加Commit进行迭代的 Tag 标签—般表示的是一个稳定版本,指向的Commit一般不会变更 通过git tag命令生成 tag.

追溯历史版本 获取当前版本代码 通过Ref 指向的Commit可以获取唯一的代码版本。 获取历史版本代码 Commit里面会存有parent commit字段,通过commit 的串联获取历史版本代码。 1.修改文件,并提交,创建新的commit. 2.查看最新的commit,新增了parent 信息。

修改历史版本 1.commit - amend 通过这个命令可以修改最近的一次 commit信息,修改之后commit id会变 2.rebase 通过git rebase -i HEAD~3可以实现对最近三个commit的修改: 1合并commit 2.修改具体的commit message 3删除某个commit 3.filter - branch 该命令可以指定删除所有提交中的某个文件或者全局修改邮箱地址等操作