0%

Git命令行操作

1 基本操作


本地库初始化

命令:git init

效果:在当前目录下创建 .git 文件夹。

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



设置签名

签名是用来标识不同开发人员的身份。包括用户名和 email。要注意登录代码托管中心(远程库)的账号密码和签名没有任何关系。

命令:

  • git config user.name Retur0

    git config user.email 384878281@qq.com

    项目级别/仓库级别:仅在当前本地库范围内有效。

  • git config --global

    系统用户级别:登录操作系统的用户范围。

    优先级:项目级别优先于系统用户级别。没有项目级别则以用户级别的签名为准。

用户信息保存到了 .git/config 文件里。

系统用户级别的信息存在了用户文件夹下的 .gitconfig 文件里。~/.gitconfig



状态查看操作

命令:git status

可以查看工作区、暂存区的状态。



添加操作

命令:git add [file name]

将工作区的新建/修改添加到暂存区。



提交操作

命令:git commit -m "commit message" [file name]

将暂存区的内容提交到本地库。



显示日志/查看历史纪录

命令:

  • git log

    参数:

    • –pretty=oneline 以每条日志显示一行的形式打印日志。
    • –oneline 哈希值显示一部分,更加简短。只显示到当前版本。不加参数是显示所有版本。
  • git reflog

    显示现版本到历史版本需要移动的次数。



版本的前进后退

命令:

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

  • git reset --hard HEAD^^^

    3个^倒退3个版本。只能后退。

  • git reset --hard HEAD~3

    倒退三个版本。只能后退。

参数:

  • –soft

    只在本地库移动指针。(本地库回退到某个版本)

  • –mixed

    在本地库移动指针。(本地库回退到某个版本)

    重置暂存区。(暂存区回退到某个版本)

  • –hard

    在本地库移动指针。(本地库回退到某个版本)

    重置暂存区。(暂存区回退到某个版本)

    重置工作区。(工作区回退到某个版本)



删除文件并找回

删除前,文件需要被提交到过本地库。

命令:git reset --hard [局部索引值]



比较文件差异

命令:

  • git diff [文件名] 将工作区中的文件和暂存区中进行比较。
  • git diff [本地库中的历史版本] [文件名] 将工作区中的文件和某个历史版本进行比较。

2 分支管理

在版本控制过程中,使用多条线同时推进多个任务。提高开发效率。在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。

2.1 分支操作:

  • 创建分支

    git branch [分支名]

  • 查看分支

    git branch -v

  • 切换分支

    git checkout [分支名]

  • 合并分支:必须切换到接受修改的分支上。

    git merge [有新内容的分支]

2.2 解决合并时产生的冲突

如果两分支同一文件的同一行不同,则会产生冲突。此时需要手动解决冲突。

冲突后文件如下:

9 <<<<<<< HEAD

10 hhhhhhhhhhhh edit by hot_fix

11 =======

12 hhhhhhhhhhhh edit by master

13 >>>>>>> master

HEAD到=======是当前分支的内容,=======下面是合并进来分支的内容。删除重复的,保留需要的。

之后使用git add [文件名]提交修改好的文件。

使用git commit -m "日志信息"结束 merging 状态。这里不可以带文件名。