关于Git,这篇文章还不够吗?

简介: 关于Git,这篇文章还不够吗?

Git 安装

  • **Git下载地址:** `https://git-scm.com/downloads`
  • **Git安装(Window/Mac):** 选择不同系统安装包安装
  • **检验是否安装成功:** 出现`Git Bash`命令行工具或`Git GUI`工具或`git --version`查看`git`安装版本

Git 结构

  • **工作区(Working Directory)**
  • **版本库(repository):** 暂存区(`stage/index`)和`master`(head唯一指向)

Git文件的4种状态

  • **Untracked(未被跟踪的):** 此文件在文件夹中,但并没有加入到`git`库, 不参与版本控制. 通过`git add`状态变为`Staged`.
  • **Unmodify(文件已经入库):** 文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致.这种类型的文件有两种去处,如果它被修改,而变为`Modified`.如果使用`git rm`移出版本库,则成为`Untracked`文件.
  • **Modified(文件已修改):** 文件已修改,仅仅是修改,并没有进行其他的操作.这个文件也有两个去处,通过`git add`可进入暂存`staged`状态,使用`git checkout`则丢弃修改过, 返回到`unmodify`状态,这个`git checkout`即从库中取出文件,覆盖当前修改.
  • **Staged(暂存状态):** 执行`git commit`则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为`Unmodify`状态.执行`git reset HEAD filename`取消暂存,文件状态为`Modified`.

Git基本命令

git init

初始化git仓库并出现.git文件夹

git add

  • **`git add`:** 将文件添加到暂存区
  • **`git add .`:** 将工作空间下所有文件添加到暂存区(new,modifyed)
  • **`git add -A`:** 将工作空间下所有文件添加到暂存区(new,modifyed,delete)
  • **`git add -u`:** 将工作空间下所有文件添加到暂存区(modifyed,delete)

git commit

  • **`git commit -m `:** 将暂存区的文件提交到版本库
  • **`git commit -am `:** 跳过`git add`命令,直接将工作区所有已跟踪的文件提交到版本库,未跟踪的(untracked)文件不能使用该命令

git status

  • **`git status -s`:** 以精简的方式显示文件状态。

git log

  • **`git log --oneline`:** 查看所有分支`commit`历史(oneline 一条提交信息用一行展示)
  • **`git log --graph --oneline`:** 查看所有分支图形化的`commit`历史(oneline 一条提交信息用一行展示)

git config

  • **git全局配置命令**
  • `git config --global user.name zivszheng`:配置用户名
  • `git config --global user.email zivs.zheng@gmail.com`:配置用户邮箱
  • **查看配置** `git config --list`

git stash

  • **`git stash`:** 暂存本地修改内容(不想提交修改的内容,想切换分支)
  • **`git stash list`:** 查看暂存的历史记录
  • **`git stash apple --index`:** 恢复之前暂存的某个记录
  • **`git stash drop --index`:** 删除某个暂存记录

git rm

  • 用于从工作区和索引中删除文件
  • 常见使用:删除已经提价到远程仓库的`.idea`,`.seting`文件/文件夹(项目构建自动生成的)如:
  • `git rm -r .idea`
  • `git commit -m 'remove .idea'`
  • `git push origin master`

Git diff

  • **`git diff`:** 比较本地工作空间和`staged`区的差异
  • **`git diff -- staged`:** 比较`staged`区和本地仓库中的差异
  • **`git diff HEAD`:** 比较本地工作空间和本地仓库中的差异

Git 撤销操作

  • **`git commit --amend`:** 撤销上一次提交将暂存区的文件重新提交(改写提交)
  • **`git checkout --filename`:** 拉取暂存区的文件并将其替换工作区的文件,注意与`git checkout branchname`区别
  • **`git reset HEAD --filename`:** 拉取最近一次提交到版本库中的文件到暂存区,该操作不影响工作区
  • **`git reset --option 版本号`**
  • `--hard`:硬回滚(不可逆的),即暂存区,工作区全部用指定提交版本的目录树替换掉
  • `--mixed`:mixed或不使用参数,覆盖暂存区,但不覆盖工作区
  • `--soft`:软回滚,不进行暂存区和工作区的覆盖

Git 分支

  • **git 分支创建、修改、删除、切换:**
  • `git branch`:查看分支
  • `git branch `:创建分支
  • `git branch -m `:修改分支名称
  • `git checkout `:切换分支
  • `git checkout -b `:创建并切换分支
  • `git checkout -d `:删除分支
  • **分支合并:**
  • `git merge`:合并指定分支到当前分支(Fast forward)
  • `git merge -no-ff -m `:合并指定分支到当前分支(-no-ff 参数表示禁用Fast forward)
  • **查看分支来自哪一个分支:** `git reflog --date=local | grep `

Git远程仓库

  • `git clone`:`git clone http://github.com/test.git`
  • `git remote -v`:查看远程信息
  • `git push`:`git push -u origin master`将本地上分支上推到
  • `git pull`:
  • `git pull origin dev:master`:获取远程的dev分支和本地的master分支合并
  • `git pull origin dev`:获取远程的dev分支和当前分支合并,实际是先执行`git fetch`后再执行`git merge`
  • `git fetch`:`git fetch origin dev`获取远程dev分支但不做合并

关联远程仓库

  • `git remote add origin`

Git tag

  • `git tag`:查看当前所有tag
  • `git tag -a `:创建tag
  • `git tag -a `:创建一个指向某一次提交的tag
  • `git tag -a -m `
  • `git show `:查看tag

Git Help

  • `git help`

(完)

相关文章
|
4月前
|
Java 网络安全 开发工具
初学者应该怎么学git-下
初学者应该怎么学git-下
96 0
初学者应该怎么学git-下
|
4月前
|
安全 开发工具 git
初学者应该怎么学git-上
初学者应该怎么学git-上
62 0
|
8月前
|
Shell 网络安全 开发工具
一些常用的 Git 进阶知识与技巧
一些常用的 Git 进阶知识与技巧
45 0
|
11月前
|
开发工具 git
深入Git-下篇
前言 在前面的几篇文章主要介绍了一些原理性的东西。本篇文章作为收尾,将介绍一些在日常工作中比较有用的命令以及解决一些经常出现的问题场景。大家可以结合git常用命令(熟练了就是高手)进行学习。
|
11月前
|
数据可视化 Shell 开发工具
深入Git-上篇
前言 作为一个开发者,想必大家都清楚Git。无论大家在工作中是使用命令行还是可视化工具来操作Git,应该都已经熟悉和掌握其基本的使用。而本系列文章的目的在于向大家介绍Git背后的基本原理,例如其如何实现不同版本的代码保存及版本切换。此外,还会向大家介绍一些好用的命令,解决在平常使用中的困惑。
|
存储 Linux Shell
手把手教你用Git——Git使用教程(一)
Git 是一个开源的分布式版本控制系统,可以有效、快速的进行项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
489 0
手把手教你用Git——Git使用教程(一)
|
安全 Java 网络安全
|
存储 开发工具 git
GIT详细基础笔记(1)
GIT详细基础笔记
135 0
GIT详细基础笔记(1)
|
数据可视化 Unix 网络安全
Git入门Git使用
Git入门Git使用
90 0
Git入门Git使用
|
开发工具 git
git ammend知识点小结
在实际使用git的过程中,难免会存在手误的场景,比如 git commit之后,发现提交的描述信息不太合适,想调整一下;或者发现本地有多个零碎未提交的commit,想合并成一个提交... 当我们出现这些需求场景的时候,可以考虑使用git commit --amend来实现
459 0
git ammend知识点小结

相关实验场景

更多