优秀的编程知识分享平台

网站首页 > 技术文章 正文

git的基础知识和常用命令(git常用的六个命令)

nanyue 2024-07-18 03:57:33 技术文章 5 ℃

Git是什么?

版本控制工具:在开发过程中用于管理我们对于文件目录等的修改历史,方便查看历史记录,以便方便查看。

Git与SVN最主要区别

SVN是集中式版本控制工具,版本库是集中放在中央服务器的。工作的时候首先要从中央服务器下载。

Git是分布式版本控制管理系统,没有中央服务器,每个人的电脑就是一台完整的版本库,只需要提交自己修改的了部分。

优点

  • 适合分布式开发,强调个体。
  • 公共服务器压力和数据量都不会太大。
  • 速度快、灵活。
  • 任意两个开发者之间可以很容易的解决冲突。
  • 离线工作。

Git理论基础

工作区域

  • 工作目录-Working Directory
  • 暂存区 -Stage
  • 资源库-Repository
  • 远程Git库-Remote Directory

工作流程

1、在工作目录中添加、修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

Git操作

要管理项目的根目录执行

创建工作目录与常见指令

获得Git仓库

创建全新仓库

git init //在当前目录下新建一个Git代码库

克隆远程仓库

# 克隆一个项目和它的整个代码历史(版本信息)
$ git clone [url]

GIT文件操作

Git提交的时候主要关心文件的两个版本之间是否有改变,判断文件整体是否改变的方法就是SHA-1算法计算文件的校验和。

文件的四种状态

  • Untracked:在文件夹中但是未加到Git库中,不参与版本控制--- git add .
  • Unmodify:文件已经入库但是未修改,
  • Modified:已修改没有进行其他的操作,git add 进入暂存Staged,git checkout 丢弃修改过
  • Staged:暂存,执行git commit将修改同步到库中。

查看文件状态

git status

添加文件与目录

添加文件到暂存区

git add . //全部 [filename]

移除文件与目录

git rm --cached <file>

查看文件修改后的差异

git diff [files]
#比较暂存区的文件与之前已经提交过的文件
git diff --cached

忽略文件

.gitignore

一组规则

提交commit

将暂存区中的文件提交到本地仓库

$ git commit -m [message]

# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]

# 提交工作区自上次commit之后的变化,直接到仓库区,跳过了add,对新文件无效
$ git commit -a

# 提交时显示所有diff信息
$ git commit -v

# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]

# 重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] ...

查看提交日志

git log

查看所有分支日志

"git reflog"中会记录这个仓库中所有的分支的所有更新记录,包括已经撤销的更新。

查看文件列表

git ls-files

撤销本地仓库更新

git reset --hard

回滚操作

git resert 

Git分支

# 列出所有本地分支
$ git branch

# 列出所有远程分支
$ git branch -r

# 列出所有本地分支和远程分支
$ git branch -a

# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]

# 新建一个分支,并切换到该分支
$ git checkout -b [branch]

# 新建一个分支,指向指定commit
$ git branch [branch] [commit]

# 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]

# 切换到指定分支,并更新工作区
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

# 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
最近发表
标签列表