3

【Git】命令行操作

 3 years ago
source link: https://www.daqianduan.com/20331.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Git 命令行操作

1 本地库初始化

git init :初始化本地仓库

效果

QzM7je.png

注意:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。

2 设置签名

形式:

用户名:tom
Email地址:[email protected]

作用:区分不同开发人员的身份

辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关系。

命令

  • 项目级别/仓库级别:仅在当前本地库范围内有效
    • git config user.nametom_pro
    • git config [email protected]
    • 信息保存位置:./.git/config文件
      A3yE3u.png
  • 系统用户级别:登录当前操作系统的用户范围
    • git config --global user.nametom_glb
    • git config --global [email protected]
    • 信息保存位置:~/.gitconfig文件(~代表根目录)
      EfYrMv.png
  • 级别优先级
    • 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
    • 如果只有系统用户级别的签名,就以系统用户级别的签名为准
    • 二者都没有不允许

3 基本操作

3. 1 状态查看

git status :查看工作区、暂存区状态

3. 2 添加

git add [filename] :将工作区的“新建/修改”添加到暂存区

  • filename:为欲添加的文件名, * 代表当前目录的所有文件。

3. 3 提交

git commit -m "commit message" [filename] :将暂存区的内容提交到本地库

3. 4 查看历史记录

git log :查看历史记录,显示完整的历史记录信息

Yzq2yi.png

多屏显示控制方式:

  • 空格:向下翻页
  • b:向上翻页
  • q:退出

上面这种方法显示的历史记录可能不太好看:我们可以采用以下方法进行简化历史记录的显示:

git log --pretty=oneline :我们可以使用此命令让历史记录放在一行上

yae2Iv.png

git log --oneline :缩短了哈希值的显示,只显示后面7位

qiiiiy.png

上面的几种方法只能显示过去与现在

下面这个命令可以显示过去、现在和未来

git reflog :这种方式可以看到我们所有的历史记录,包括回退前、回退后、过去、现在、将来。

VjYJ3u.png

HEAD@{移动到当前版本需要多少步}

3. 5 前进后退

本质:使用 git reflog 来显示所有历史记录

BB3EFz.png

可以使用以下方法来移动HEAD指针

M3MBFj.pngVf2Yja.png

基于索引值操作[推荐]

git reset --hard [局部索引值]
git reset --hard a6ace91

使用 ^ 符号:只能后退

  • git reset --hardHEAD^ :一个 ^ 表示后退一步,n个表示后退n步

使用 ~ 符号:只能后退

  • git reset --hardHEAD~n :表示后退n步

3. 6 reset 命令的三个参数对比

原本本地库、暂存区、工作区三者版本一致:

--soft 参数

  • 仅仅在本地库移动HEAD指针

    7BBVVj.png

    这里可以看出,我们的本地库版本退后了一步,而其他的都没改变

--mixed 参数

  • 在本地库移动HEAD指针
  • 重置暂存区(重置,即 后退版本)
    yyYrIj.png

--hard 参数(这个用的最多)

  • 在本地库移动HEAD指针
  • 重置暂存区
  • 重置工作区
    jA3ymy.png

3. 7 删除文件并找回

前提:删除前,文件存在时的状态提交到了本地库。

操作: git reset --hard [指针位置]

  • 删除操作已经提交到本地库:指针位置指向历史记录
  • 删除操作尚未提交到本地库:指针位置使用HEAD

3. 8 比较文件差异

git diff [文件名] :将工作区中的文件和暂存区进行比较

git diff [本地库中历史版本] [文件名] :将工作区中的文件和本地库历史记录比较

git diff :不带文件名比较多个文件

4 分支管理

4. 1 什么是分支?

在版本控制过程中,使用多条线同时推进多个任务。

m6bQza.png

4. 2 分支的好处?

  • 同时并行推进多个功能开发,提高开发效率
  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

4. 3 分支操作

git branch [分支名] :创建分支

git branch -v :查看分支

git checkout [分支名] :切换分支

合并分支

  • 第一步:切换到接受修改的分支(被合并,增加新内容)上
    git checkout [被合并分支名]
  • 第二步:执行merge命令
    git merge [有新内容分支名]

解决冲突

  • 冲突的表现

    YjIJJv.png
  • 冲突的解决
    • 第一步:编辑文件,删除特殊符号
    • 第二步:把文件修改到满意的程度,保存退出
    • 第三步: git add [文件名]
    • 第四步: git commit -m "日志信息"

      注意:此时commit一定不能带具体文件名

命令行常用操作步骤

情况一:创建自己的项目

1. 创建远程库

AFzaQz.pngaaQvei.png

2. 创建远程库地址别名

git remote -v 查看当前所有远程地址别名
git remote add [别名] [远程地址]
MnMv22.png

3. 推送

git push [别名] [分支名]
aeMRBn.png

推送需要输入账号和密码:

bQzQVz.png

情况二:克隆别人的项目

1. 克隆远程仓库(从无到有)

git clone [远程地址]
RJjyA3.jpg

效果

  • 完整的把远程库下载到本地
  • 创建 origin 远程地址别名
  • 初始化本地库

情况三:更新已有的项目

1. 拉取(从旧到新)

git fetch [远程库地址别名] [远程分支名]
git merge [远程库地址别名/远程分支名]
git pull [远程库地址别名] [远程分支名]
#感谢您访问本站#
#本文转载自互联网,若侵权,请联系删除,谢谢!657271#qq.com#

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK