目 录CONTENT

文章目录

git及相关应用

简中仙
2020-07-20 / 0 评论 / 0 点赞 / 33 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2023-10-08,若内容或图片失效,请留言反馈。 本文如有错误或者侵权的地方,欢迎您批评指正!
git相关概念说明
git是一种版本控制系统,是一个命令,是一种工具
gitlib是用于实现 git 功能的开发库
github是一个基于 git 实现的在线代码托管仓库,包含一个网站界面,向互联网开放
gitlab是一个基于 git 实现的在线代码仓库托管软件,一般用于在企业内部网络搭建 git 私服

注: gitlab-ce 社区版 ; gitlab-ee 是企业版,收费

一、git基础

1、git安装

# yum -y install git
# git config --global user.name "zhangsan"           //声明自己的名字
# git config --global user.email "zhangsan@163.com"           //声明自己的邮箱
# mkdir /data           //创建版本库目录
# cd  /data
# git init           //初始化当前目录为版本库
初始化空的 Git 版本库于 /data/.git/
# ls .git/
branches  config  description  HEAD  hooks  info  objects  refs
文件夹说明文件夹说明
branches分支目录config定义目录特有的配置选项
description仅供git web使用HEAD指定当前的分支
hooksgit钩子文件info包含一个全局排除文件(exclude)
objects存放所有的数据内容refs指针文件
index暂存区文件

2、上传代码步骤

# vim readme.txt           //创建文件,模拟代码
123456789
# git add readme.txt           //单个文件上传
# git status            //查看暂存区
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#	新文件:    readme.txt
#
# git rm --cached readme.txt           //把文件从暂存区撤销
rm 'readme.txt'
# git add .           //当前目录所有文件上传
# git commit -m "add readme.txt file"           //上传到版本库
[master(根提交) 0f7f688] add readme.txt file
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt
# vim readme.txt            //修改readme.txt内容
123456789
111111111
# git add .           //当前目录所有文件上传
# git diff readme.txt           //查看异同
# git commit -m "add readme.txt file"           //上传到版本库
[master 0282ca1] add readme.txt file
 1 file changed, 1 insertion(+)
# git status           //查看版本状态
# git log           //显示历史记录详细信息
commit 0282ca17c98007d872f7c57f22d9ca1ffc60b8bb
Author: zhangsan <zhangsan@163.com>
Date:   Mon Jul 20 17:00:28 2020 +0800

    add readme.txt file

commit 0f7f6884ce95c8b577ac40bfd399cb5efdc95d62
Author: zhangsan <zhangsan@163.com>
Date:   Mon Jul 20 16:59:14 2020 +0800

    add readme.txt file
# git log --oneline           //显示历史记录摘要信息
0282ca1 add readme.txt file
0f7f688 add readme.txt file
# git reset --hard HEAD^           //回滚到上个版本,HEAD^^上上版本,HEAD~10回滚到上10个版本
HEAD 现在位于 0f7f688 add readme.txt file
# git reset --hard 0f7f688           //通告git log 的版本号码回滚,仅写前7位就可
HEAD 现在位于 0f7f688 add readme.txt file
# git reflog           //回滚动作命令日志
0f7f688 HEAD@{0}: reset: moving to HEAD^
0282ca1 HEAD@{1}: commit: add readme.txt file
0f7f688 HEAD@{2}: commit (initial): add readme.txt file

二、git常用命令

1、初始化仓库

git config --global user.name "zhangsan"							# 声明自己的名字
git config --global user.email "zhangsan@163.com"					# 声明自己的邮箱
git init           													# 初始化当前目录为版本库

2、获取或配置仓库信息

git config --list														# 获取config信息
git config --global user.name "your name"								# 设置username
git config --global user.email "your_email@youremail.com"				# 设置邮箱

3、重定向仓库地址(仓库迁移)

git remote set-url origin <新的仓库名>		# 更换仓库远程地址
git push -u -f origin
git push -u -f origin --all					# 把所有分支迁移过去
git push -u -f origin --tags				# 把所有tag迁移过去

4、更改代码后提交代码

git add readme.txt  						# 单个文件上传
git add .									# 当前目录所有更改文件上传
git status									# 查看暂存区
git rm --cached readme.txt					# 把文件从暂存区撤销
git checkout -- readme.txt  				# 已经提交到暂存区,之后再修改内容出错,想回到上次暂存区版本
git commit -m "add readme.txt file"			# 上传到版本库
git push									# 提交代码

5、分支操作

git branch							# 查看分支
git branch ops						# 创建分支
git checkout ops					# 切换分支
git checkout -b dev					# 创建并切换到新的分支
git checkout master					# 切换到主分支
git merge dev						# dev合并到master分支
git branch -d dev					# 删除分支
git branch -d 分支名				  # 删除分支
git branch -D 分支名				  # 强制删除 若没有其他分支合并就删除 d会提示 D不会
git branch -m 旧分支名 新分支名		   # 修改分支名
git branch -M 旧分支名 新分支名		   # 修改分支名 M强制修改 若与其他分支有冲突也会创建(慎用)
git branch -r 						# 列出远程分支
git branch -a 						# 列出远程分支以及本地分支名,远程分支会以remote/origin/分支名这种形式展示红色标识
git branch 							# 查看本地分支

6、将某次commit从一个分支转移到另一个分支

git checkout dev						# 切换到已提交代码分支
git log									# 查看提交历史
git checkout B							# 切换到需要提交代码的分支
git cherry-pick commit id				# 将该commit id pick到需要到分支

7、将本地分支的多次提交合并为一个commit到远程仓库

git log							# 查看提交历史
git rebase -i HEAD~2			# 合并本地的commit节点,2为需要合并的节点数量
git push origin master 			# 本地版本库提交至远程仓库,如果提示远程仓库与本地工作树不一致可添加--force参数强制覆盖

8、Gitlab在fork之后如何和主仓库同步

git remote -v								# 查看远程仓库路径
git remote add upstream 源项目地址			 # 增加上游代码库(只有origin没有upstream时操作)
git add .									# 当前目录所有更改文件上传
git commit -m "提交命名"					 # 提交所有更改放到缓存区
git pull --rebase upstream					# 拉取原仓库的修改文件

9、标签操作

git tag									    # 查看列出所有打过的标签名
git tag -d 标签名							  # 删除对应标签 只是删除了本地的
git tag 标签名字							 # 在当前仓库打个标签
git show 标签名称							 # 查看tag的详细信息 包括commitid 作者信息 日期 内容
git push origin 标签名称					  # 同步这个tag到远程服务器 默认tag是打在本地的 这个命令可以把它推到远程
git push origin --tags						# 将本地所有tag推送到远程服务器
git pull --tags								# 把远程仓库的标签也拉取下来

10、版本回滚

注意:版本回滚前,尽量备份一下当前文件

git reset --hard HEAD^  					# 回滚到上个版本,HEAD^^上上版本,HEAD~10回滚到上10个版本
git reset --hard <commit id>  				# 通告git log 的版本号码回滚,仅写前7位就可
git reflog									# 回滚动作命令日志

11、Git代理设置

# 设置使用HTTP类型的代理
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080

# 取消代理的设置
git config --global --unset http.proxy
git config --global --unset https.proxy

# 设置使用socks5类型的代理
git config --global http.proxy 'socks5://127.0.0.1:1081'
git config --global https.proxy 'socks5://127.0.0.1:1081'

# 查看代理设置
git config --global --get http.proxy
git config --global --get https.proxy

三、.gitignore文件

1、简介

一般来说每个Git项目中都需要一个“.gitignore”文件,这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。

2、用法

# 此为注释 – 将被 Git 忽略
*.a       # 忽略所有 .a 结尾的文件
!lib.a    # 但 lib.a 除外
/TODO     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/    # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

注意

  1. 这样没有扩展名的文件在Windows下不太好创建,方法:创建一个文件,文件名为:“.gitignore.”,注意前后都有一个点。保存之后系统会自动重命名为“.gitignore”。
  2. 假设我们只有过滤规则没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
  3. 如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。所以一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦

3、样本

参考:https://github.com/github/gitignore

0

评论区