你系统学习Git了吗?

了解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**

  1. /etc/gitconfig (几乎不会使用,针对于整个操作系统的)

    git config --system
  2. ~/.gitconfig (很常用,针对于当前用户的所有配置)

    git config --global
  3. .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
    ## 是为了保护你的误操作。

版权声明:本文为bigbaby原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/bigbaby/p/12173785.html