git学习

常用命令

查看当前文件夹下的文件与文件夹:ls ll
进入当前文件夹下的user文件夹:cd ./user
查看当前文件夹下的test.txt文件:cat ./test.txt
返回上一级目录:cd ..
当前目录:cd .
退出vim编辑器::wq

git学习_第1张图片

本地库的创建

命令:git init

签名

需要用户名邮箱,用于区分开发人员,类似与身份证。

签名类别:

  • 项目级别
    仅在当前项目下生效
    命令:git config user.name TestUser
    git config user.email [email protected]
    信息保存位置:./.git/config文件
    cat ./.git/config

  • 系统级别
    当前操作系统(Windows、Linux等)的用户
    命令:git config --global user.name TestUser_glo
    git config --global user.email [email protected]
    信息保存位置:cat ~/.gitconfig

基本操作

查看状态

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

将文件添加到暂存区

将文件test.txt添加到暂存区命令:git add test.txt
将工作区的“新建/修改” 添加到暂存区

将当前目录下所有文件夹与文件添加到暂存区:git add .

将文件从暂存区删除

命令:git rm test.txt
资源管理器中的文件也会被删除

提交

命令:git commit -m "message" test.txt
将暂存区的内容提交到本地库

将暂存区的所有内容提交到本地库
git commit -m "message" .

不带-m命令:git commit .
按ESC后:wq退出

查看日志

git log
git学习_第2张图片
git log --online
在这里插入图片描述
git reflog
在这里插入图片描述
HEAD指针指向当前使用的版本

版本回退/前进操作

  • 基于索引值操作[推荐]
    git reset --hard [局部索引值]
  • 使用~符号: 只能后退
    git reset --hard HEAD~n
    n表示后退n步

参数对比:

  • –hard 参数
    在本地库移动 HEAD 指针
    重置暂存区
    重置工作区

  • –mixed 参数
    在本地库移动 HEAD 指针
    重置暂存区

  • –soft 参数
    在本地库移动 HEAD 指针

删除文件并找回

删除前, 文件存在时的状态提交到了本地库
操作: git reset --hard [指针位置]

以前的版本存在test.c文件,但是当前版本没有test.c,可以回退到上一个版本实现找回删除的文件

分支

主干的副本

分支操作

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

  • 查看分支
    git branch -v

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

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

第二步: 执行 merge 命令
git merge [有新内容分支名]

冲突的解决

git学习_第3张图片冲突的解决

  • 第一步: 编辑文件, 删除特殊符号
  • 第二步: 把文件修改到满意的程度, 保存退出
  • 第三步: git add [文件名]
  • 第四步: git commit -m “日志信息”
    注意: 此时 commit 一定不能带具体文件名

github

为远程库设置别名

先在github创建一个库
获取远程库的链接git学习_第4张图片
查看当前所有远程地址别名git remote -v
设置别名git remote add [别名] [远程地址]

推送到远程服务器

推送git push [别名]/[远程服务器地址] [分支名]
推送必须基于最新版本

报错解决方法
git config --global http.sslVerify "false"

github用户名密码管理
Windows凭据管理器

从远程服务器下载

推送git clone [别名]/[远程服务器地址]

邀请其他成员

git学习_第5张图片

拉取

pull=fetch+merge

  • git fetch [远程库地址别名] [远程分支名]
  • git merge [远程库地址别名/远程分支名]
  • git pull [远程库地址别名] [远程分支名]

解决冲突

要点

  • 如果不是基于 GitHub 远程库的最新版所做的修改, 不能推送, 必须先拉
    取。
  • 拉取下来后如果进入冲突状态, 则按照“分支冲突解决” 操作解决即可。

类比

  • 债权人: 老王
  • 债务人: 小刘
  • 老王说: 10 天后归还。 小刘接受, 双方达成一致。
  • 老王媳妇说: 5 天后归还。 小刘不能接受。 老王媳妇需要找老王确认后再
    执行。

冲突的解决

  • 首先pull
  • 编辑文件, 删除特殊符号
  • 把文件修改到满意的程度, 保存退出
  • git add [文件名]
  • git commit -m “日志信息”
    注意: 此时 commit 一定不能带具体文件名
  • 再push

SSH登录

  • 进入当前用户的根目录
    cd ~
  • 删除.ssh 目录
    rm -rvf .ssh
  • 运行命令生成.ssh 密钥目录
    ssh-keygen -t rsa -C 邮箱地址
    注意: 这里-C 这个参数是大写的 C
  • 进入.ssh 目录查看文件列表
    cd .ssh
    ls -lF
  • 查看 id_rsa.pub 文件内容
    cat id_rsa.pub
  • 复制 id_rsa.pub 文件内容, 登录 GitHub, 点击用户头像→Settings→SSH and GPG
    keys
  • New SSH Key
  • 输入复制的密钥信息
  • 回到 Git bash 创建远程地址别名
    git remote add [别名] [SSH的远程地址]
  • 推送文件进行测试

你可能感兴趣的:(git)