关于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`

(完)

相关文章
|
8月前
|
缓存 开发工具 数据安全/隐私保护
通过一篇文章带你玩转git和GitHub
在现代软件开发中,版本控制系统是不可或缺的工具。Git和Github是其中最受欢迎的组合。Git是一个开源的分布式版本控制系统,用于追踪代码的改动,而Github则是一个基于Git的代码托管平台,提供了代码托管、协作开发等功能。
159 2
通过一篇文章带你玩转git和GitHub
|
存储 缓存 运维
【运维知识高级篇】一篇文章带你搞懂Git!(Git安装+全局配置+Git初始化代码仓库+Git四大区域+Git四种状态+Git常用命令+Git分支+Git测试代码回滚)
【运维知识高级篇】一篇文章带你搞懂Git!(Git安装+全局配置+Git初始化代码仓库+Git四大区域+Git四种状态+Git常用命令+Git分支+Git测试代码回滚)
279 0
|
8月前
|
Linux Shell 开发工具
一篇文章带你快速入门使用Git
一篇文章带你快速入门使用Git
|
存储 Linux 开发工具
学会使用Git,看这一篇文章就够了
以上是 Git 的简介绍和常用命令说明。希望这篇文章能够帮助初学者更好地理解和掌握 Git 的使用。Git 在代码管理中是一个非常重要的工具,尤其是在多人协作的情况下。因此,掌握好这些基本命令是非常有必要的。
|
存储 缓存 Shell
一篇文章搞懂Git与Github
一篇文章搞懂Git与Github
|
缓存 Ubuntu Linux
|
存储 缓存 安全
看了这边文章,你还敢说你不会用git吗
看了这边文章,你还敢说你不会用git吗
892 0
|
网络安全 开发工具 数据安全/隐私保护
一篇文章玩转 git --> Github (本地仓库提交到远程仓库问题)
Git是一个免费的、开源的版本控制软件。版本控制是一种记录一个或者若干个文件内容变化,以便将来查询阅读特定版本修订情况的管理系统。Github是全球最大的设计编程以及代码托管网站Github官网,Github可以托管各种git库,并提供一个web界面。GIt是版本控制软件,Github是项目代码托管的平台,借助git来管理项目代码。 Github可以学习到优秀的开源项目,关注行业前辈了最新的行业动态以及最前沿的技术。
一篇文章玩转 git --> Github (本地仓库提交到远程仓库问题)
|
安全 机器人 Java
|
缓存 编译器 开发工具