GIt Github GitLab

1. Git

Git是分布式的版本管理系统,每台机器都可以基于远程中心服务器拥有自己的版本。Git基本操作如如下:

1.1 Git 配置用户名和邮箱

# 配置用户名
git config --global usr.name "Magicboom"

# 配置邮箱
git config --global usr.email "Luke-Liu2020@qq.com"

# 显示所有的配置
git config --list

#显示单个配置
git config usr.name

# 查看git 帮助
git help

1.2 Git init 项目初始化

# 在当前文件夹下面出初始化一个git项目(生成隐藏的.git文件)

git init

# 生成一个文件夹,并初始化一个git项目(生成隐藏的.git文件)

git init [filename]

example:git init myproject   

# 生成一个myproject文件夹,里面有隐藏的.git文件

# 使用 
ls -la 查看文件,包括隐藏的

1.2 .1git status查看当前状态,git diff 查看文件变化,git add 实现文件追踪

#查看当前状态,看是否 add, 或者文件是否有变化
git status

#文件追踪
# add filename的文件
git add [filename]   eg: git add index.html

# add 添加所有
git add .

# 更改文件后,可以通过git diff 查看文件变化
git diff [filename]
git diff

# 如果更改的文件已经add,可以通过
git diff --staged     来查看

1.2.2 git checkout文件修改操作撤回,以及文件追踪操作git add的撤回

# 在 git add之前,复原修改的文件
git checkout --[filename]



# 去除add 操作
git rm -r --cached

# 在git add之后,撤回对filename前一步操作,即撤回git add
git reset HEAD [filename]

1.3 git commit操作

# 执行后需要用vim 编辑
git commit

# m 后面加commit的名称

git commit -m

eg: git commit -m commit1

# add和commit 一起做,前提,没有新文件,而只是修改了已有的文件

git commit -am 

eg: git commit -am commit2

1.4 git log查看操作日志

Git log详细解释链接

# git log默认会输出commit hash, author, date, commit message
git log

# -p:控制输出每个commit具体修改的内容,输出的形式以diff的形式给出
git log -p 

#加--author用来过滤commit,限定输出给定的用户
git log --aurthor

#这个命令简化git log的默认的输出,仅仅输出commit hash 前7个字符串和commit message.
git log --oneline

#这个命令git log以图的方式输出.
git log --graph

#我们可以用–pretty来自定义输出的信息
git log --pretty=online

git log --pretty=format

1.5 .gitignore 实现特定文件的忽略

touch .gitignore

mkdir node_modules

在 .gitignore里面一行一个 忽略的文件,不会被add,也不会被commit
eg

filename
*.zip
*.txt
*.exe

1.5 Git 版本回退或是回到旧版本(错误commit之后的操作)

1.5.1 版本回退,会删除回退版本后的所有版本

1.5.2 回到旧版本,重新commit,保留错误commit版本

# 查看想要回复分旧版本的hash 值
git log --oneline

# 回复旧版本(对应的hash值)的某个文件
git checkout [hash] -- filename
# 回复旧版本的所有文件
git checkout [hash] -- .

# 提交
git commit -m 

1.6 建立. 删除和切换分支 git branch

在一个分支中需要做到working tree clean之后再去切换到其他分支,这样可以保证版本的一致性。


# 查看目前都要哪些分支 *代表都有哪些分支
git branch

# 建立一个分支
git branch [name]

#切换分支
git checkout [branch name]

# 建立分支,并且切换到改分支

git checkout -b [branch name]

# 需要在其他分支下,删除一个分支, 已经merge了

git branch -d [branch name]

#需要在其他分支下,强行删除一个分支, 还没有merge

git branch -D [branch name]

1.7 分支的合并 git merge

# 例如在master下面,合并分支 branchname

git merge [branchname]

1.8 git merge合并时候的冲突解决

# 首先使用git status查看当前的状态
git status

# 忽略本次合并,回到合并前的状态
git merge --abort

# 如果要解决冲突,需要找到冲突的地方,然后将其中一个保存至一致的状态,或者保存2者
然后使用git add.
然后使用 git commit
使用vim 写入解决方案

1.9 使用命令查看版本线图

# 查看当前分支的版本线图
git log --oneline --graph

# 查看所有分支的版本线图

git log --oneline --graph --all

1.9.1更多的合并的方法(非快转机制等等)

# 不使用快转机制的merge, 显示合并分支的所有版本号
git merge [branchname] --no -ff

# 前行回到最初状态 什么都没有合并

git reset --hard ORIG_HEAD


# 合并成功,但是没有commit。 一般用于merge之后测试时候合并完有效果,没问题之后再进行commit
git merge[branchname] --no --ff --no-commit
#然后使用
git commit


# 合并一个分支, 将合并分支的许多版本号改为一个版本。相当于压缩了这个分支
git merge --squash [branchname]

1.10 批量查看分支的状态以及批量的删除特定分支,以及批量的合并特定分支

# 查看已经合并的分支
git branch --merged
# 查看所有没有合并的分支
git branch --no-merged

批量删除特定分支

删除已经合并的分支

 

2  Git with Github操作

2.1  将本地项目上传到github仓库

2.1.1 本地项目没有git仓库,如何上传到github?

Step1 首先在Github创建一个repository,然后获取.git网址
例如: https://github.com/Magicboomliu/OpenCV_CPP.git

Step2 分别执行以下操作:

git init
 
git add .

git commit -m first commit

git remote add orgin https://github.com/Magicboomliu/OpenCV_CPP.git

git push -u origin master

2.1.2本地已经有了git仓库,如何上传到github?

Step1 首先在Github创建一个repository,然后获取.git网址
例如: https://github.com/Magicboomliu/OpenCV_CPP.git

Step2 分别执行以下操作:
git remote add origin https://github.com/Magicboomliu/OpenCV_CPP.git

git push -u origin master

2.1.3 清除本地和远程仓库的remote?

# 连接远程仓库
git remote add origin https://github.com/Magicboomliu/OpenCV_CPP.git

# 查看当前连接的仓库
git remote

# 取消与远程仓库的连接

git remote remove [respostry name]

2.2 Github.io主仓库可以作为服务器使用

 2.3 获取远端仓库 git clone

默认checkout到master

no checkout 需要checkout到自己想要的仓库

bare只是克隆仓库信息(.git文件夹),不克隆具体的code

 

 2.3 git pull 获取最新的远端仓库到本地(方便git push)

git pull =git fetch +git merge

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值