git版本管理命令使用

权限问题

https://blog.csdn.net/qq_50790981/article/details/124991911

创建版本库及版本管理命令

1.创建工程目录

1
$ mkdir project(任取)

2.进入工程目录下,新建版本仓库(或者合并成git init project)

1
$ git init

3.利用ls命令查看隐藏目录.git(版本库,最终要的是暂存区、分支及分支头指针)

1
$ ls -ah

4.工作目录或其子目录下编写或修改文件,如在project文件夹中新建一个readme.txt的文本文件

(1)将readme.txt 单个文件添加到版本库的暂存区(一般不直接从工作区到分支)

1
$ git add readme.txt
命令 含义 使用场景
$ git add . 将当前目录的所有文件添加到暂存区 版本库管理工程
$ git add all 相当于$ git add . 版本库管理工程
$ git add folder 将指定目录folder及其子目录添加到暂存区 版本库管理一个目录

5.将暂存区的文件提交到仓库分支,并对本次提交进行说明

1
$ git commit readme.txt -m "文件说明"
命令 含义
$ git commit –v 提交时显示diff信息
$ git commit –amend –m “我写了一个很好的文档” 用本次提交代替上一次提交;若文件没有变化,则改写提交信息
$ git commit –amend 重做一次commit
$ git commit –a 将自上次提交后的工作区的变化直接提交到仓库

6.提交前可以先进行确认和检查

查看工作区的文件又没有改动等信息,modified后为改动过的文件

1
$ git status
image-20221208114505983

查看文件进行了哪些修改,即暂存区和工作区的差异

1
$ git diff
image-20221208114623103

如果运行git add readme.txt后,则暂存区和工作区无差异

image-20221208115714252
命令 含义
$ git diff –cached 显示暂存区和上一个commit的差异
$ git diff HEAD 显示工作区与当前分支下的最新commit之间的差异
$ git diff [branch1] [branch2] 显示两次提交之间的差异

7.提交后查看当前仓库中的所有提交的历史记录

image-20221208114756299
命令
$ git log –pretty=oneline 显示提交历史的简要信息
$ git reflog 显示当前分支最近几次操作

8.版本回退

命令 含义
$ git reset –hard HEAD^ 将版本库、暂存区、工作区都回退到上一个版本
$ git reset –soft HEAD^ 只回退版本库
$ git reset –mixed HEAD^ 回退版本库和暂存区
$ git reset –hard commit_id 回退到commit_id表示的版本,可以是当前版本之前或之后的版本

QQ图片20221208160912

9.恢复

用暂存区(版本库)的内容覆盖工作区的内容(如果工作区的内容删除了也可以用这种方式恢复)

1
$ git checkout --文件名

10.删除

将文件删除并提交到暂存区(需要先从工作区删除,再使用本条命令,之后还要commit)

1
$ git rm 文件名

只从stage中删除,保留物理文件

1
$ git rm --cached 文件名

11.分支

建立一个副本,在副本上修改,主分支master的内容不变

(1)创建分支

命令 含义
$ git branch 列出所有本地分支
$ git branch -r 列出所有远程分支
$ git branch -a 列出所有本地和远程分支
$ git branch dev 新建一个分支dev,但不切换到此分支
$ git branch dev commit_id 新建一个分支,并指向某个commit
$ git branch –d dev 删除本地分支dev
$ git branch –dr 删除远程分支

在dev2上不存在第一个修改的记录

QQ图片20221209092742 QQ图片20221209092738

(2)切换分支

命令 含义
$ git checkout –b dev 新建一个分支dev,并切换到此分支
$ git checkout dev 切换到分支dev,并更新工作区

(3)分支合并

将分支dev合并到当前分支

1
$ git merge dev

选择一个commit,合并到当前分支

1
$ git cherry --pick commit_id

(4)解决冲突

如果同一个文件在合并分支时都被修改了则会引起冲突

QQ图片20221209110831 QQ图片20221209110835

<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<<HEAD是指主分支修改的内容,>>>>>dev6 是指dev6上修改的内容

QQ图片20221209110838

解决的办法是可以修改冲突文件后重新提交。master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上。用git log –graph命令可以看到分支合并图。

(5)删除本地分支

1
$ git branch -d [branch-name] -D(大写)强制删除

12.为不好记的commit_id打标签

命令 含义
$ git tag 查看所有标签
$git tag V1.0 为当前分支打上标签V1.0
$git tag -d v1.0 删除当前分支的标签V1.0
$git tag V1.0 commit_id 为指定的某次提交打上标签
$git tag -a V1.0 -m “version1.0 released” 为当前分支创建带说明性文字的标签号
$git show V1.0 查看标签为V1.0的信息

远程相关、忽略文件相关

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码

请我喝杯咖啡吧~

支付宝
微信