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
命令的三个参数对比
--soft
参数- 仅仅在本地库移动
HEAD
指针
- 仅仅在本地库移动
--mixed
参数:在本地库移动
HEAD
指针重置暂存区
--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的主要内容,如果未能解决你的问题,请参考以下文章