关于git:Git基础总结

46次阅读

共计 2750 个字符,预计需要花费 7 分钟才能阅读完成。

Git – 分布式版本控制系统

一、Git 简介

  • 诞生背景
  • 分布式与集中式
  • 创立版本库与文件增加

二、时光机

  • 版本控制
  • 工作区和暂存区
  • 治理批改
  • 撤销批改
  • 删除文件

三、近程仓库

  • 从近程仓库克隆(先有近程仓库)
  • 将近程仓库与本地仓库相关联(先有本地仓库)

四、分支治理

  • 创立与合并分支
  • 解决抵触
  • 分支管理策略
  • Bug 分支
  • Feature 分支
  • 多人合作
  • Rebase 变基

五、标签治理

六、自定义 Git

  • 疏忽非凡文件
  • 配置别名
  • 搭建 Git 服务器
    • *

Git – 分布式版本控制系统

Git 简介

诞生背景

linux 团队为治理 linux 代码而研发的一套分布式版本控制系统。

分布式与集中式

集中式须要有一台机器来充当地方服务器,而分布式则不须要,每台主机都保留残缺的代码库。

创立版本库与文件增加

新建版本库:git init
增加到暂存区:git add file_name
提交到版本库:git commit -m “message”

时光机

查看版本库状态:git status
查看文件状态:git diff file_name

版本控制

版本回退:
查看历史提交记录:git log
批改 HEAD 指向:git reset –hard commit_id
版本后退:
查看命令历史记录:git reflog
批改 HEAD 指向:git reset –hard commit_id
PS:HEAD 示意以后版本,HEAD^ 示意上一个版本,HEAD~3 示意上三个版本。

工作区和暂存区

治理批改

Git 跟踪并治理的是批改,而非文件。

撤销批改

撤销以后 工作区 的批改,回到最近一次 git add 或 git commit 的状态:git checkout — file_name
重置当前工作区版本,并清空 暂存区:git reset HEAD file_name

删除文件

rm file_name
从版本库中删除文件:git rm file_name(之后的复原只能抉择版本回退)
复原误删文件到最新版本:git checkout — file_name

近程仓库

本地 Git 仓库和 GitHub 仓库之间的传输是通过 SSH 加密的,所以须要把本地的 SSH 公钥增加到 github 上,用户才有增加代码的权限。

从近程仓库克隆(先有近程仓库)

克隆:git clone git@github.com:best921/originProperty.git

将近程仓库与本地仓库相关联(先有本地仓库)

关联:git remote add origin git@github.com:best921/originProperty.git

分支治理

创立与合并分支

查看分支:git branch
新建分支:git branch branch_name
新建近程分支到本地:git checkout -b branch_name origin/branch_name
删除分支:git branch -d branch_name
强制删除分支 (实用于还没被合并的分支):git branch -D branch_name
切换分支:git checkout branch_name
新建 + 切换分支:git checkout -b branch_name
合并指定分支到以后分支 (默认 Fast-forward 模式):git merge branch_name
一般模式的分支合并,会新建一个 commit 记录:git merge –no-ff -m “” branch_name

解决抵触

把 Git 合并失败的文件手动编辑为咱们心愿的内容,再提交。
查看分支合并图:git log –graph –pretty=oneline –abbrev-commit

分支管理策略

master 分支:应该是十分稳固的,也就是仅用来公布新版本,平时不能在下面干活。
dev 分支:不稳固的,在该分支开发,到某个时候,比方 1.0 版本公布时,再把 dev 分支合并到 master 上,在 master 分支公布 1.0 版本。

Bug 分支

储备当前工作现场:git stash
新建长期分支修复 Bug,合并并删除分支。
查看储备的工作现场列表:git stash list
复原工作现场:git stash apply stash_id
删除储备的工作现场:git stash drop stash_id
复原工作现场同时删除 stash 内容:git stash pop

Feature 分支

当咱们接到一个新性能需要时,最好新建一个 feature 分支,在下面开发,实现后,合并,最初,删除该 feature 分支。

多人合作

查看近程库信息:git remote
查看近程库详细信息:git remote -v
推送到近程分支:git push origin branch_name
抓取近程分支最新提交:git pull branch_name
创立本地分支和近程分支的链接关系:git branch –set-upstream-to=origin/branch_name branch_name

Rebase 变基

把本地未 push 的分叉提交历史整顿成直线,看上去更直观:git rebase
只对 尚未推送或分享给他人的本地批改 执行变基操作清理历史。
从不对 已推送至别处的提交 执行变基操作。

标签治理

Git 的标签是版本库的快照,其实就是指向某个 commit 的指针,通常用来标记版本号。
新建标签 (默认 commit_id 为最新提交的记录):git tag tag_name commit_id
创立带有阐明的标签:git tag -a tag_name -m “xxx” commit_id
查看标签 (按字母排序):git tag
查看标签详情:git show tag_name
删除本地标签:git tag -d tag_name
删除近程标签:git push origin :refs/tags/tag_name
推送某个标签到近程:git push origin tag_name
推送所有标签到近程:git push origin –tags

自定义 Git

疏忽非凡文件

在 Git 工作区的根目录下创立一个非凡的.gitignore 文件,而后把要疏忽的文件名填进去,Git 就会主动疏忽这些文件,即不会报 Untracked files…
不须要从头写.gitignore 文件,GitHub 曾经筹备了各种配置文件,只须要组合一下就能够应用了。所有配置文件能够间接浏览:github.com/github/giti…

配置别名

通过命令行配置:git config –global alias.st status
通过配置文件批改:每个仓库的 Git 配置文件都放在.git/config 文件中,而以后用户的 Git 配置文件放在用户主目录下的一个暗藏文件.gitconfig 中
PS:配置 Git 的时候,加上 –global 是针对以后用户起作用的,如果不加,那只针对以后的仓库起作用。

搭建 Git 服务器

既不想公开源代码,又不想给 GitHub 付费,能够本人搭建一台 Git 服务器作为公有仓库应用。

参考资料

廖雪峰的 git 教程
官网 git 文档

正文完
 0