git&github

Posted garyxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git&github相关的知识,希望对你有一定的参考价值。

?# git&github操作

本地库和远程库

团队合作

技术图片

跨团队协作远程库

技术图片

本地仓库设置签名

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

  • git config user.name tom_pro

  • git config user.email garyxirapper@aliyun.com

    信息保存位置:./.git/config 文件

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

  • git config ==--global== user.name tom_glb

  • git config ==--global== garyxirapper@aliyun.com

    信息保存位置:~/.gitconfig 文件

git

git结构

技术图片

基本操作

命令 作用
git init 初始化目录
git status 查看工作区、暂存区状态
git add [file name]或 . 将工作区的“新建/修改”添加到暂存区
git commit -m "commit message" [file name] 将暂存区的内容提交到本地库

日志操作:

1.git log

技术图片

多屏显示控制方式:
空格向下翻页
b 向上翻页
q 退出

2.git log --pretty=oneline

技术图片

3.git log --oneline

技术图片

4.git reflog

技术图片

版本前进后退

本质:

技术图片

命令 举例 作用
git reset --hard [局部索引值] git reset --hard a6ace91 本地库暂存区工作区版本都回到要指向的版本
git reset --hard HEAD^ / 一个^表示后退一步,n 个表示后退n 步
git reset --hard HEAD~n / 表示后退n 步

reset 命令的三个参数对比

  1. --soft 参数
    • 仅仅在本地库移动HEAD 指针
  2. --mixed参数:

    • 在本地库移动HEAD 指针

    • 重置暂存区

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

删除文件并找回

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

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

比较文件差异

git diff [文件名]

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

分支

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

技术图片

分支操作

命令 作用
git branch [分支名] 创建分支
git branch -v 查看分支
git checkout [分支名] 切换分支

合并分支

合并分支:

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

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

分支冲突

  • 冲突的表现

技术图片

  • 冲突的解决

    • 第一步:编辑文件,删除特殊符号

    • 第二步:把文件修改到满意的程度,保存退出

    • 第三步:git add [文件名]

    • 第四步:git commit -m "日志信息"

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

github

github创建远程库

想要把本地项目上传到GitHub

创建远程库地址别名

切换到本地项目目录下:

命令 举例 作用
git remote -v / 查看当前远程仓库地址别名
git remote add [别名] [远程地址] git remote add origin https://github.com/LionSSSN/WEBAPI.git 添加远程仓库地址别名

推送push

命令 举例 作用
git push [别名] [分支名] git push origin master 推送到远程仓库master分支

克隆

命令 举例 作用
git clone [远程地址] git clone https://github.com/LionSSSN/WEBAPI.git 完整的把远程库下载到本地
创建origin 远程地址别名
初始化本地库

拉取pull

命令 举例 作用
git pull [远程库地址别名] [远程分支名] git pull origin master 拉取

pull=fetch+merge

  • git fetch [远程库地址别名] [远程分支名] (==注:远程下载到本地,但是本地项目内容没有改变==) =>

    git check origin/master(==查看修改的内容再merge==)

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

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

解决冲突

要点:

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

技术图片

最后 git push origin master

跨团队合作

第一步:先fork

第二步:git clone 远程地址(fork后自己的地址)

第三步:修改增加之后 执行git add、git commit、git push origin master操作

第四步:点击pull request =>create pull request

第五步:经理查看pull request 之后审核通过点击 merge pull request完成跨团队操作

ssh登录

命令 作用
$ cd ~ 进入当前用户的家目录
$ rm -rvf .ssh 删除.ssh 目录
$ ssh-keygen -t rsa -C garyxirapper@aliyun.com 运行命令生成.ssh 密钥目录
$ cd .ssh
$ ls -lF
进入.ssh 目录查看文件列表
$ cat id_rsa.pub 查看id_rsa.pub 文件内容

复制id_rsa.pub 文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG keys

  • New SSH Key*
  • 输入复制的密钥信息
  • 回到Git bash 创建远程地址别名
    git remote add origin_ssh git@github.com:atguigu2018ybuq/huashan.git

以上是关于git&github的主要内容,如果未能解决你的问题,请参考以下文章

GitHub & Tortoisegit:git 没有干净地退出(退出代码 128)

001Git & GitHub

git--github使用

Git && GitHub

Git & github 入门

Git & GitHub