天天都在用Git,那么你系统学习过吗?学习过程
Posted bigbaby
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了天天都在用Git,那么你系统学习过吗?学习过程相关的知识,希望对你有一定的参考价值。
你系统学习Git了吗?
使用Mac编程的好处,不是因为Mac长得好看
Git内容学习准备
如果你还没有用Git,就不要写代码了。
GitHub仓库的使用。
新员工入职的时候,会让他先用一周的时间去学习Git。
Mac(优雅的开发环境,Terminal)
不要使用GUI入门Git。要使用命令行。
安装Git
- 使用Xcode自带的Git环境。
- 去官网自行下载安装。
- Terminal的增强。
bash
每一个Linux和Mac自带的解释器。(但是功能不是很强大)
强大的叫:zsh.
加强版本: oh my zsh (自行安装)
清屏命令:clear
or ctrl+L
创建命令:touch xxx.txt :=增删改等。
查看命令:man cp
vi的基本使用。
必须要掌握的:Terminal操作
作为一个JAVA程序员,应该大部分都是在Windows使用JAVA开发,但是希望不要仅仅局限于JAVA。不然对成长很不友好。
内容大纲
- Git官网
- 常见Linux命令介绍
- Git在各种平台下的安装与配置
- 分布式与集中式版本控制系统的差别
- 缓存区、工作区与Git提交
- 版本回退
- 修改与撤销修改,文件的添加与删除
- Git对象类型与索引
- Git分支
- 如何创建,切换与删除分支
- Git分支在项目中开发的使用
- Git分子在工程化项目的最佳实践
- 分支常见重要命令详解
- Git merge
- Git冲突解决策略
- HEAD详解
- Git Commit修改详解
- 远程版本库介绍
- 如何使用远程版本库
- Git Push、Pull、fetch使用与注意事项
- Git合并的基本原则
- Git别名、config文件详解
- Git tag详解
- 如何创建与推送tag
- Git feature分支详解
- 何时使用submodule
- Git subtree详解
- Git subtree的使用方式详解
- .gitignore的正确使用方式
- Git私服GitLab的搭建方法
- 在公司内部使用gitlab作为版本控制服务器
- GitLab使用详解
- GitHub的使用方式
- 搭建基于Intellij IDEA的Java开发环境
- 搭建基于Gradle的JAVA开发环
- Git与Intellij IDEA 的整合方式详解
- Gradle初步使用
- .gitignore最佳实践
学习方法:知道一,更知道二,更知道三。
了解Git
Git简史
开发Git来管理Git
CVS、SVN与Git
不会Git,就别开发代码了。
Git、GitHub与GitLab
Git设计目标
为什么要使用Git
- 本地建立版本库
- 本地版本控制
- 多主机异地协同工作
- 重写提交说明
- 有后悔药可以吃
- 更好用的提交列表
- 更好的差异比较
- 更完善的分支系统
- 速度极快
Git基础
- 直接记录快照,而非差异比较
- 近乎所有操作都在本地执行
- 时刻保持数据完整性
- 多数操作仅添加数据
- 文件的三种状态
- 已修改
- 已暂存
- 已提交
Git文件状态
Git文件:已经被版本库管理的文件
已修改:在工作目录修改Git文件
已暂存:(indea-staged)对已经修改的文件执行Git暂存操作,将文件存入暂存区
已提交:将已经暂存的文件执行Git提交操作将文件存放版本库
pic1
Git的文件状态如下
Pic2
本地版本库与服务器版本库
pic3
Git 安装
Linux
Mac
Windows
需要自行了解 SSH
GUI:source tree & GitHub Desktop
使用Git
Git常用命令
获得版本库
git init
git clone
查看信息
git help
git log
git diff
版本管理
git add
git commit
git rm
远程协作
git pull
git push
其他常用指令
git status ##查看状态
git log ##查看commit记录
git checked -- xxx.txt ##丢弃已经修改的
git reset HEAD xxx.txt ##回到修改前的状态
git commit -m 'commit message' ##简要信息显示并commit
echo 'welcome' > xxx.txt ##重定向welcome 到这个文件的输出
git add . ##当前目录所有文件都add
git log -3 ## 最近三条的log
git help config ## 获取配置
git config --help ## 帮助文档
man git-confgi ##帮助文档
常见功能
配置username && email**
/etc/gitconfig (几乎不会使用,针对于整个操作系统的)
git config --system
~/.gitconfig (很常用,针对于当前用户的所有配置)
git config --global
.git/config (针对于特性项目)
git config --local
Git的提交ID(commit id)是一个摘要值,这个摘要值实际上是个sha1计算出来的
删除(两种方式)
git rm 和 rm的区别
git rm :
1.删除文件
2.并且将删除的文件纳入到暂存区当中(stage,index)
若想恢复删除的文件需要执行两个动作
1. git reset HEAD test2.txt ,将待删除的文件从暂存区恢复到工作区
2. git checkout -- test2.txt ,将工作区中的修改丢弃掉
rm:
将文件删除文件,这时候被删除的文件没有纳入暂存区当中
注意:
这时候如果直接commit,是提示没有修改记录的。
想要纳入暂存区的话,需要使用 git add xxx.txt 把这个文件的删除再加入暂存区。
重命名文件(两种方式)
git mv name1.txt name2.txt (纳入暂存区的修改名字操作)
回退:
git reset HEAD name1.txt
git checked -- name1.txt
也可以使用操作系统的mv指令,关系和删除是相同的
日志修改
git commit --amend -m 'new message' ##把上次保存的commit消息替换掉
熟练使用命令行,是提升开发效率的第一步。
.gitignore文件
操作的时候自动过滤制定的文件。放置在项目的根目录下
支持全文件名/正则表达式/后缀名/通配符
setting.properties ##删除指定文件
*.b ##后缀名
!a.b ## !除了什么
/TODO ##仅仅忽略项目根目录下的TODO文件, stu/TODO 这种是不忽略的
/*/TODO ##仅仅删除二级目录下的TODO文件
/**/TODO ##删除所有目录下的TODO文件
doc/*.txt ##忽略doc目录下的.txt文件,但是 doc/a/a.txt 是不会被忽略的
doc/**/*.txt ##忽略doc目录下的所有*.txt
build/ ## 忽略build目录下的所有文件
#xxxx ## 代表注释
分支 branch
查看分支
git branch ## 查看分支
创建分支
git branch new_branch ##创建分支
切换分支
git checkout new_branch ##切换分支
删除分支
git branch -d new_branch ## 删除分支,
## 但是不能删除当前所处的分支。
## 删除 未被合并的 - 使用大写的 D
## 删除 已经被合并的 - 使用小写的 d
## 是为了保护你的误操作。
(2020年01月09日22:16:50 )——未完待续...
以上是关于天天都在用Git,那么你系统学习过吗?学习过程的主要内容,如果未能解决你的问题,请参考以下文章