目 录
1 Gitlab及Git介绍说明 5
1.1 什么是 Gitlab 5
1.2 什么是Git 5
1.3 Git 家族成员 5
1.4 Gitlab版本 5
1.5 Gitlab 优势 5
1.6 Gitlab 主要服务构成 6
1.7 Gitlab 简单工作流程 6
1.8 Gitlab用户角色 6
2 Gitlab安装与使用 7
2.1 Gitlab安装说明(管理员) 7
2.1.1 安装依赖环境 7
2.1.2 yum 安装gitlab-ce 7
2.1.3 加载配置 8
2.1.4 登录并修改默认的root用户密码 8
2.1.5 优化:用域名访问 9
2.1.6 本地配hosts进行域名解析 9
2.1.7 gitlab日常管理 10
2.2 Gitlab的使用(管理员) 10
2.2.1 Gitlab相关命令 10
2.2.2 gitlab安装目录 10
2.3 Gitlab的使用 11
3 Git安装与使用 14
3.1 Windows Git安装 14
3.1.1 下载Git 14
3.1.2 安装 15
3.1.3 Git配置 28
3.2 Ubuntu Git安装 34
3.3 Git的使用 34
3.3.1 创建项目(代码维护者(Maintainer)) 34
3.3.2 建本地分支并上传分支(代码维护者(Maintainer)) 35
3.3.3 克隆项目(下载代码) 36
3.3.4 切换分支 37
3.3.5 拉取代码 37
3.3.6 提交更改 37
3.3.7 拉取分支代码 37
3.3.8 Git查看远程地址 38
3.3.9 打标签 40
3.3.10 Git常用命令 41
4 TortoiseGit的使用 42
4.1 安装文件 43
4.1.1 下载地址 43
4.1.2 公司内部地址 43
4.2 安装及配置 43
4.2.1 安装 44
4.2.2 配置 44
4.3 克隆代码 48
4.4 比较差异 49
4.4.1 比较目录中所有文件的差异 49
4.4.2 比较单个文件的差异 50
4.5 提交文件 51
4.6 还原文件 53
4.7 追溯历史更改 54
4.8 其他用法 55
5 Git管理流程与方法 55
5.1 管理流程图 55
5.2 管理代码的说明 56
5.3 VIVADO工程代码 56
5.3.1 工程文件内容 56
5.3.2 上传内容 56
5.4 Java工程代码 56
5.4.1 工程文件内容 56
5.4.2 Git管理内容 56
5.5 Vue 工程代码 57
5.5.1 工程文件内容 57
5.5.2 Git管理内容 57
5.6 React工程代码 57
5.6.1 工程文件内容 57
5.6.2 Git管理内容 57
6 附录 57
6.1 极客Gitlab教程 57
6.2 官网Git文档指南 58
6.3 TortoiseGit 详细教程 59
6.3.1 安装包公司内部地址 59
6.4 Git可视化工具-idea插件使用 59
6.5 Vivado 工程文件内容说明 59
6.6 Git拉取某个分支代码步骤 59
6.7 Git如何建本地分支 59
6.8 Git 如何在远程分支上新建分支 59
6.9 分支代码合并到master分支 60
6.10 Git下载指定历史版本的代码 60
6.11 如何撤销 Git 添加命令? 60
6.12 Git回滚版本 62
6.13 撤销commit 65
6.14 Git删除文件 65
6.15 git stash命令用法 65
6.16 获取最近一次提交的作者信息 66
6.17 当commit后,发现之前有人提交,不能push如何处理? 66
正 文
1Gitlab及Git介绍说明
1.1什么是 Gitlab
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发。
开发语言:Ruby,Go
功能:管理项目源代码、版本控制、代码复用与查找、权限管控。
1.2什么是Git
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1]也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
1.3Git 家族成员
Git:是一种版本控制系统,是一组命令,是一种工具,没有可视化界面;
Gitlib:是用于实现 Git 功能的开发库;
Github:是一个在线代码托管仓库,包含一个网站界面,向互联网开放;(同类网站码云,云效,工蜂)
GitLab:是一个基于 Git 实现的在线代码仓库托管软件,提供web可视化管理界面,通常用于企业团队内部协作开发。
1.4Gitlab版本
包括社区免费版和企业收费版。
1.5Gitlab 优势
※开源免费,适合中小型公司将代码放置在系统中,社区版目前提供的功能完全能满足中小型公司的日常使用,如果想升级为收费版也可以无缝对接;
※差异化的版本管理,任何微小的变动都会被记录下来;
※离线同步,不依赖网络通信,可以将本地的所有 Git 操作在有网络的时候同步到 Gitlab 仓库中;
※强大分支管理功能,可以针对不同的环境、不同的业务逻辑创建独立的分支,然后进行并行独立的维护和更新;
※GUI 操作界面
※强大账户权限管理,不同账户的权限各不相同;
※集成度很高,能够集成绝大多数的开发工具,比如 JIRA,Idea;
※支持内置 HA,保证在高并发下仍然可以高可用性,无需搭建第三方高可用服务,保证用户在 7*24 小时均能使用。
1.6Gitlab 主要服务构成
Nginx :静态 Web 服务器:proxy 代理,处理所有 HTTPS 静态访问请求
Gitlab-workhorse :轻量级的反向代理服务器:处理一些较大的文件上传下载,以及我们经常使用的 git push 命令行操作;
Gitlab-shell:用户处理 Git 命令和修改 authorized keys 列表(ssh 公钥列表);
Logrotate:日志文件管理工具,负责Gitlab 日志切割、打包等操作;
Postgresql:数据库,保存所有 Gitlab 数据信息;
Redis:缓存服务器,缓存数据库信息;
sidekiq:用于在后台执行队列任务(异步执行);
unicorn:http服务软件,GitLab Rails应用是托管在这个服务器上面的。
1.7Gitlab 简单工作流程
※创建并克隆项目;
※创建项目某 Feature 分支;
※编写代码并提交至该分支;
※推送该项目分支到远程 Gitlab 服务器;
※进行代码检查并提交 Master 主分支合并申请;
※项目主管审查代码并确认合并申请;
1.8Gitlab用户角色
GitLab的6种角色包括:
-
访客(Guest):可以只读的方式访问所有项目;
-
报告者(Reporter): GitLab项目的测试人员:该角色在Guest角色权限基础上多了观看、克隆Gitlab项目的代码权限,但是不能提交项目代码,即只能看不能改。可以创建问题、发表评论和查看项目;
-
开发者(Developer):GitLab项目的项目开发人员:该角色可以克隆、开发、提交项目代码,以及创建问题和发表评论;
-
代码维护者(Maintainer):GitLab项目的管理员,可以管理项目的成员、分支和标签,以及创建、关闭和合并问题;负责代码合并与代码审核。
-
拥有者(Owner):拥有项目的所有权限,可以进行项目的管理和设置;
-
管理员(Administrator):可以管理所有项目和GitLab实例,包括用户和权限设置等及GitLab日常维护。
2Gitlab安装与使用
2.1Gitlab安装说明(管理员)
注:安装环境为Centos7
2.1.1安装依赖环境
powershell
sudo yum install -y curl policycoreutils-python openssh-server openssh-clients perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
2.1.2 yum 安装gitlab-ce
powershell
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum -y install gitlab-ce
2.1.3加载配置
powershell
sudo gitlab-ctl reconfigure
2.1.4登录并修改默认的root用户密码
需要执行以下命令:
powershell
cd /opt/gitlab/bin
gitlab-rails console
powershell
cd /opt/gitlab/bin
> u=User.where(id:1).first
>User.all
> u.password='123456cs'
> u.password_confirmation='123456cs'
> u.save!
> exit
见下图操作:
2.1.5优化:用域名访问
修改/etc/gitlab/gitlab.rb的这一个参数:
external_url "http://gitlab.szyt.com"
执行命令,让修改生效:
powershell
sudo gitlab-ctl reconfigure
2.1.6本地配hosts进行域名解析
在CentOS7上,可以通过编辑"/etc/hosts"文件来配置主机文件。在该文件中添加以下代码:
IP地址 域名
见图片:
在完成DNS服务器和主机文件的配置之后,可以通过以下命令来重启网络服务:
powershell
systemctl restart network
重启网络服务后,您的CentOS7服务器应该已经配置好了域名解析。
2.1.7gitlab日常管理
powershell
gitlab-ctl start|stop|status|restart
2.2Gitlab的使用(管理员)
2.2.1Gitlab相关命令
powershell
gitlab-ctl start #启动全部服务
gitlab-ctl restart#重启全部服务
gitlab-ctl stop #停止全部服务
gitlab-ctl restart nginx #重启单个服务,如重启nginx
gitlab-ctl status #查看服务状态
gitlab-ctl reconfigure #使配置文件生效
gitlab-ctl show-config #验证配置文件
gitlab-ctl uninstall #删除gitlab(保留数据)
gitlab-ctl cleanse #删除所有数据,从新开始
gitlab-ctl tail <service name>查看服务的日志
gitlab-ctl tail nginx #如查看gitlab下nginx日志
gitlab-rails console #进入控制台
2.2.2gitlab安装目录
以下是gitlab常用的默认安装目录
※gitlab组件日志路径:/var/log/gitlab
※gitlab配置路径:/etc/gitlab/ 路径下有gitlab.rb配置文件
※应用代码和组件依赖程序:/opt/gitlab
※各个组件存储路径: /var/opt/gitlab/
※仓库默认存储路径 /var/opt/gitlab/git-data/repositories
※版本文件备份路径:/var/opt/gitlab/backups/
※nginx安装路径:/var/opt/gitlab/nginx/
※redis安装路径:/var/opt/gitlab/redis
2.3Gitlab的使用
A 用浏览器登录网站,注册用户或登录 ,如:http://192.168.188.48/users/sign_in
B 登入网址
C 选择项目,见下图:
D 获取项目地址:选中"克隆",并复制链接,即得到项目地址,见下图:
3Git安装与使用
3.1Windows Git安装
注:安装环境Windows、Linux、Mac,本文主要介绍Windows下的安装,版本Git-2.41.0-64-bit。
3.1.1下载Git
3.1.2安装
※下载完成后,直接点击安装包安装。
※选择安装目录
※此处默认即可。
※设置环境变量PATH
配置一是 "仅从 Git Bash 使用 Git" 。这是最安全的选择,因为您的 PATH 根本不会被修改。您只能使用 Git Bash 的 Git 命令行工具。但这将不能通过第三方软件调用 Git 。
配置二是 "从命令行以及第三方软件启用 Git" 。该选项被认为是安全的,因为它仅向 PATH 添加了一些最小的 Unix 命令解析器,以避免使用时造成系统环境混乱。您将能够从 Git Bash ,命令提示符和 Windows PowerShell 以及在 PATH 中寻找 Git 或是在任何第三方软件中使用 Git 。这也是推荐的选项。
配置三是 "从命令提示符使用 Git 和可选的 Unix 命令" 。警告:这将覆盖 Windows 命令,如:find 和 sort。你只有在了解其含义后才使用此选项。
一般默认即可。
※选择Https transport backend ,按默认
※以下内容按默认方式
※是否启用实验功能
这里不勾选,默认选择,如果想尝试新功能,可官网查阅资料了解即可。
※开始安装,等待片刻,最后Finish。
3.1.3Git配置
3.1.3.1 配置用户名和邮箱
A 桌面右键------>git bash here
B为本机设置name和emailname
命令:
powershell
#配置用户名
git config --global user.name "test"
#配置邮箱
git config --global user.email abc@163.com
如图:
3.1.3.2配置GitLab中的SSH key
A查看是否配置用户名和邮箱
powershell
git config --global --list
B查看是否已有SSH key
(1)桌面右键点击弹出,点击Git Bash进入命令行界面
(2)cat ~/.ssh/id_rsa.pub查看SSH秘钥是否存在,可以看到初次没有生成过
(3)(生成过可删除,重新生成)找到C:\Users\admin.ssh,admin是当前用户名,删除以下文件
C、生成SSH 密钥
powershell
ssh-keygen
输入ssh-keygen,连续3次回车,成功之后id_rsa,id_rsa.pub两个文件默认在C:\Users\ admin.ssh目录下,cmd运行窗口也显示了文件路径。
如下图,一路回车即可生成,会在C:\Users\admin.ssh下生成基于rsa的公钥与私钥对。
D、 添加SSH key到Gitlab
(1)输入命令,查看公钥并复制以ssh-rsa开头的这段ssh key;
powershell
cat ../.ssh/id_rsa.pub #查看公钥,自己手动复制
cat ~/.ssh/id_rsa.pub | clip #或者直接复制到剪贴板
(2)将ssh key填写到gitlab SSH Keys上。见下二图,并点击"添加密钥":
3.1.3.3查看git当前用户
要查看git当前用户,可以通过以下不同的方式实现:
使用git config命令获取当前用户的用户名:
git config user.name
powershell
git config user.name
这将返回当前git用户的用户名。
使用git config命令获取当前用户的邮箱:
git config user.email
powershell
git config user.email
这将返回当前git用户的邮箱。
3.2 Ubuntu Git安装
安装Debian/Ubuntu的最新稳定版本:
powershell
$apt-get install git
3.3Git的使用
3.3.1创建项目(代码维护者(Maintainer))
A上传本地代码文件到git仓库
在代码所在目录下执行下面命令:
powershell
$git init (初始化仓库)
$git add . (这里的.表示添加所有文件,也可以自定义添加)
$git commit -m '添加的注释信息'// git commit -m '原始版本上传'
$git remote add origin 'url' //例如:git remote add origin http://192.168.188.48/robingeng/CMMS_test3.git
$git push -u origin master
注:如果项目为管理员或项目负责人创建,那么则不需要自己创建项目,需要管理员提供项目链接,如:http://192.168.188.48/szyt_app/CMMS_APP.git
那么直接git clone 即可。
powershell
$git clone -b develop http://192.168.188.48/szyt_app/CMMS_APP.git
如果拉取某个分支,比如develop分支,可用下面命令。
powershell
$git clone -b develop http://192.168.188.48/szyt_app/CMMS_APP.git
3.3.2建本地分支并上传分支(代码维护者(Maintainer))
A在当前仓库中,使用"git branch"命令加上分支名称即可创建本地分支。
powershell
$git branch develop
这样就建立了一个名为"develop"的新分支。
B 用"git branch"命令可以查看当前所有分支及其状态。
powershell
$git branch
当前有二个分支,master与develop,如图:
其中, "*"号所在的分支就是当前所在的分支,"master"是默认创建的主分支,而"develop"是新建的分支。
C 切换分支
如果需要切换到"develop"分支,可以使用"git checkout"命令进行切换。
powershell
$git checkout develop
切换到"develop"分支后,可以在这个分支上进行代码修改和提交。
D 查看当前分支
如果需要查看当前所处的分支,可以使用"git status"命令查看状态信息。
powershell
$git status
如图:
E 从远端目标分支(master) copy代码
powershell
$git pull origin master
F 将本地新建的分支(develop)同步到服务器
powershell
$git push origin develop
如图:
这样,在Gitlab端,就看到了分支develop信息。
3.3.3克隆项目(下载代码)
开始做一个项目时需要克隆项目代码,用下面命令:
powershell
$git clone http://192.168.188.48/robingeng/CS66.git
或者
$git clone git@192.168.188.48:robingeng/CS66.git
3.3.4切换分支
powershell
$git checkout develop
也可直接克隆分支,如下:
powershell
$ git clone -b develop git@192.168.188.48:robingeng/CS66.git
例:git clone -b develop git@192.168.188.48:robingeng/CS66.git
3.3.5拉取代码
开发过程中,要拉取(获取)最新代码,用以下命令:
powershell
$git pull
3.3.6提交更改
powershell
$git add . (. 代表所有,也可具体到某一个文件)
$git commit -m '注释'
$git push
其中,"git add ."命令将所有修改的文件添加到本地提交中,"git commit -m"命令将提交添加到本地仓库,并为其添加一条注释,"git push"命令将本地提交推送到GitLab服务器。
3.3.7拉取分支代码
在使用Git进行版本控制的过程中,经常需要拉取某个分支的代码。这里将介绍Git拉取某个分支代码的步骤。
前提条件,新建一个目录,在目录下右键启动git bash
A 初始化
powershell
$git init
B 克隆代码
powershell
$git clone git@192.168.188.48:robingeng/CS66_TSN.git
C获取远程仓库中所有分支信息并保存到本地
powershell
$git fetch
D 查看所有分支信息
powershell
$git branch -a
E 切换到某个分支
powershell
$git checkout < branch_name >
其中,<branch_name>是需要切换到的分支名称。这个命令会将当前分支切换为指定的分支,并更新本地代码。
F 拉取代码
powershell
$git pull origin <branch_name>
其中,<branch_name>是需要拉取的分支名称。该命令会从远程仓库获取最新代码,并将代码合并到本地文件夹中。
G 查看当前状态
powershell
$git status
3.3.8Git查看远程地址
3.3.8.1查看已配置的远程仓库
powershell
$ git remote -v
该命令会显示已经配置的远程仓库的名称和地址。例如,输出可能会类似于:
powershell
origin http://192.168.188.48/szyt_system/devices/CS66.git (fetch)
origin http://192.168.188.48/szyt_system/devices/CS66.git (push)
3.3.8.2查看远程仓库的详细信息
powershell
$ git remote show
该命令会显示远程仓库的地址、分支信息、跟踪分支等详细信息。这对于了解远程仓库的状态和配置非常有帮助。
3.3.8.3查看远程仓库的 URL
powershell
$ git config --get remote..url
其中, 是远程仓库的名称。该命令会输出远程仓库的 URL。
3.3.8.4查看远程仓库的所有分支
powershell
$ git ls-remote --heads
其中, 是远程仓库的 URL。该命令会列出远程仓库的所有分支和对应的 commit ID。
3.3.8.5查看远程仓库的提交记录
powershell
$ git log --oneline
其中, 是远程仓库的名称, 是远程分支的名称。该命令会显示远程分支的提交记录,包括 commit ID 和提交信息。
3.3.8.6查看远程仓库的文件列表
powershell
$ git ls-tree --name-only
其中, 是远程仓库的名称, 是远程分支的名称。该命令会列出远程分支的文件列表。
3.3.8.7查看远程仓库的提交差异
powershell
$ git diff / HEAD
其中, 是远程仓库的名称, 是远程分支的名称。该命令会显示远程分支和本地分支之间的提交差异。
3.3.9打标签
3.3.9.1查看标签
powershell
$ git tag
3.3.9.2打标签
在 Git 中创建附注标签十分简单。 最简单的方式是当你在运行 tag 命令时指定 -a 选项:
powershell
$ git tag -a v1.4 -m "my version 1.4"
3.3.9.3将标签推送远程仓库
#推送标签v1.5到远程仓库
powershell
$ git push origin v1.5
#将所有标签推送到远程仓库
powershell
$ git push origin --tags
3.3.9.4切换标签
git checkout
powershell
$ git checkout v1.5
3.3.9.5拉取指定tag
- 查看可用的标签:首先,您可以使用以下命令查看可用的标签列表:
git tag
powershell
$ git tag
这将列出所有可用的标签。
- 切换到标签:选择要切换到的标签,然后使用以下命令切换到该标签:
git checkout <tag_name>
powershell
$ git checkout v1.0
Git会将您的工作目录切换到标签所指向的特定提交,即切换到标签时的代码状态。
- 拉取标签的代码:在切换到标签后,您可以使用以下命令来确保本地仓库是最新的:
git pull origin <tag_name>
powershell
$ git pull origin v1.0
请注意,标签本身通常不支持拉取操作,因为标签代表一个静态的快照,不会像分支一样更新。所以,使用git pull 命令时,您需要指定远程仓库(通常是"origin")和标签名称来获取与标签关联的最新代码。
现在,您已经成功切换到标签并拉取了该标签的代码。请注意,标签通常用于表示软件的版本或发布,因此它们通常不会改变,如果您希望在标签基础上进行开发,请考虑创建一个新的分支。
3.3.10Git常用命令
powershell
用户名: $ git config user.name
邮箱:$ git config user.email
密码:$ git config user.password
用户名:$ git config --global --replace-all user.name "要修改的用户名"
邮箱: $ git config --global --replace-all user.email"要修改的邮箱"
密码:$ git config --global --replace-all user.password "要修改的密码"
查看修改状态:$git status
拉取远程仓库代码:$git pull
克隆远程某分支上的代码:$git clone -b 分支名称 http://xxx.git
合并分支到主分支:$git merge 分支名称
创建新分支:$git branch 新分支名
删除分支:$git branch -D 分支名
查看分支:$git branch
分支切换:$git checkout 分支名称
查看记录:$git log
查看地址:$git remote -v
强制合并代码(用于当前版本和历史提交版本不一致的情况):$git pull origin 分支名--allow-unrelated-histories
本地代码覆盖远程分支代码:$git push -f --set-upstream origin 分支名
4TortoiseGit的使用
4.1安装文件
4.1.1下载地址
官网:https://tortoisegit.org/download/
开源地址:https://github.com/TortoiseGit/TortoiseGit
4.1.2公司内部地址
略
4.2安装及配置
4.2.1安装
※按要求默认安装即可。
4.2.2 配置
A 鼠标右键选中"设置",如图:
B 设置语言
C 设置用户名和邮箱
D 通过以下方式,找到key:
1)选中"Open Git GUI here"
2)选中 help->Show SSH Key
- 点击"Copy to Clipboard"
4.3克隆代码
1)右键选中"克隆"
2)输入地址
4.4比较差异
4.4.1比较目录中所有文件的差异
在目录中,点鼠标右键,TortoiseGit->比较差异,从而知道当前目录下,哪些文件做了修改,见下图:
4.4.2比较单个文件的差异
选中要对比的文件,点鼠标右键,TortoiseGit->比较差异,从而知道文件哪里做了修改,见下图:
4.5提交文件
选中要提交的文件,点鼠标右键,TortoiseGit->提交,输入日志信息,并选择作者,日期信息,提交,见下图:
4.6还原文件
如果修改代码有错,需要还原,那么则选中文件,点鼠标右键,TortoiseGit->还原,则回退到上一版本,见下图:
4.7追溯历史更改
如果想查看以往变动记录,那么则选中文件,点鼠标右键,TortoiseGit->追溯,见下图:
4.8其他用法
参见6.3 TortoiseGit 详细教程
5Git管理流程与方法
5.1管理流程图
5.2管理代码的说明
5.3VIVADO工程代码
5.3.1工程文件内容
(1)工程文件: .xpr
(2)代码文件:srcs目录 /srcs/ .xdc (约束文件)
/srcs/.v (工程文件)
/srcs/ .vh (头文件)
/srcs/.hdl (设计文件)
/srcs/ .bd (模块设计文件)
/srcs/*.xci (ip核文件)
.sdk SDK 环境代码, ZYNQ 设计中关于 PS 端的代码
.sim 仿真文件
(3) *.tcl 控制台脚本文件
(4) .bat ( .sh)
5.3.2上传内容
Git管理 .sdk、 .srcs 、.xpr 三个文件即可。
5.4Java工程代码
5.4.1工程文件内容
工程文件夹包含
(1)批处理文件 .bat
(2)源代码文件 .java
(3)Maven文件: .pom文件
(4)数据库脚本文件: .sql
5.4.2Git管理内容
.java 、.pom、*.sql
5.5Vue 工程代码
5.5.1工程文件内容
工程文件夹包含:
.json、.html、.css 、 .js 、图片文件、.vue文件
5.5.2 Git管理内容
.json、html、.css 和 .js 、vue文件
5.6React工程代码
5.6.1工程文件内容
工程文件夹包含:
.json、.html、.css 、 .js 、各类图片文件、.jsx、.js.tsx
5.6.2Git管理内容
.json、.html、.css 、 .js 、各类图片文件、.jsx、.js.tsx
6 附录
6.1极客Gitlab教程
网址:
https://geek-docs.com/git/gitlab-tutorials/t_lib_100_gitlab_index.html
6.2官网Git文档指南
网址:https://git-scm.com/book/zh/v2
6.3TortoiseGit 详细教程
https://zhuanlan.zhihu.com/p/381851207
6.3.1安装包公司内部地址
安装程序:
略
语言包
略
6.4Git可视化工具-idea插件使用
https://blog.csdn.net/fox9916/article/details/127912690
6.5Vivado 工程文件内容说明
https://blog.csdn.net/m0_37779673/article/details/120587541
6.6Git拉取某个分支代码步骤
https://m.php.cn/faq/544731.html
6.7Git如何建本地分支
https://m.php.cn/faq/544634.html
6.8Git 如何在远程分支上新建分支
https://blog.csdn.net/weixin_61028990/article/details/128778233
6.9分支代码合并到master分支
要将一个分支的代码合并到master分支,可以按照以下步骤操作:
a.切换到master分支:git checkout master
powershell
$git checkout master
b. 拉取最新的代码:git pull
powershell
$git pull
c. 合并分支代码到master分支:git merge 分支名
powershell
$git merge develop
d. 如果有冲突需要解决冲突,可以使用git status
查看冲突文件,手动修改冲突文件,然后使用git add
将修改后的文件添加到暂存区,最后使用git commit
提交合并结果。
e. 如果合并成功,可以使用git push
将代码推送到远程仓库。
powershell
$git push origin master
注意:在合并分支代码到master分支之前,需要确保分支代码已经经过测试,没有问题。否则合并后可能会引入新的问题。
6.10Git下载指定历史版本的代码
(详细步骤)
https://blog.csdn.net/zhangbinlong/article/details/126106145
6.11如何撤销 Git 添加命令?
在使用 Git 进行开发时,你可能会意外地添加了一些文件或目录,但尚未提交这些更改。幸运的是,Git 提供了一些命令来撤销添加操作,以便你可以还原到未添加文件的状态。本文将介绍如何在 Git 中撤销添加命令,并提供详细的步骤。
※步骤
以下是在 Git 中撤销添加命令的详细步骤:
步骤1:查看 Git 仓库状态
在撤销 Git 添加命令之前,首先需要查看 Git 仓库的当前状态。执行以下命令来查看仓库状态:
powershell
$git status
这将显示出已添加和未添加的文件。
步骤2:撤销所有添加的文件
如果你意外地添加了多个文件或目录,想要撤销所有的添加操作,可以使用以下命令:
powershell
$git restore --staged .
这将从暂存区(即 Git 的索引)中移除所有添加的文件。
步骤3:撤销单个文件的添加
如果只想撤销某个特定文件的添加,可以使用以下命令:
powershell
$git restore --staged <file>
将 替换为你要撤销添加的文件路径。
步骤4:验证撤销结果
在执行撤销添加命令后,可以再次使用 git status 命令来验证撤销结果。应该会显示出之前添加的文件处于未添加状态。
步骤5:撤销文件修改
如果不仅要撤销文件的添加,还要撤销对文件的修改,可以使用以下命令:
powershell
$git restore <file>
这将撤销对文件所做的所有修改,并恢复到最近的提交状态。
步骤6:撤销所有添加和修改
如果你想完全撤销所有的添加和修改,并返回到最近的提交状态,可以使用以下命令:
powershell
$git restore .
这将撤销所有的添加和修改,并将工作目录恢复到最近的提交状态。
步骤7:慎用撤销命令
在使用撤销命令时,请确保你了解其影响,并且仔细考虑后果。撤销命令会更改你的工作目录和暂存区的状态,因此在使用之前请确保你对操作的影响有清晰的理解。
步骤8:避免添加文件的误操作
除了使用撤销命令之外,还有一些方法可以帮助你避免意外添加文件:
使用 .gitignore 文件:在项目的根目录下创建一个名为 .gitignore 的文件,并在其中列出你不希望 Git 跟踪的文件和目录。这样可以确保这些文件不会被意外添加到仓库中。
定期检查 Git 状态:在执行任何 Git 命令之前,始终检查 Git 仓库的状态。这样可以确保你明确知道哪些文件已添加和未添加。
使用交互式添加:在使用 git add 命令时,使用 -p 或 --patch 选项进行交互式添加。这将让你选择性地添加文件的部分内容,而不是一次性添加整个文件。
结论
撤销 Git 添加命令是一个重要的操作,可以帮助你还原到未添加文件的状态,避免不必要的提交。通过使用 git restore 命令,你可以撤销所有的添加、撤销单个文件的添加,甚至可以撤销文件的修改。但是请谨慎使用撤销命令,并始终了解其影响。此外,为了避免意外添加文件,你可以使用 .gitignore 文件来排除不需要跟踪的文件,并定期检查 Git 仓库的状态。使用这些技巧和步骤,你可以更好地管理和控制你的 Git 仓库中的文件变更。
6.12Git回滚版本
1.使用命令或者在gitlab页面上查看需要回退到的版本号commitID
powershell
$git log
(退出log方式:q)
日志显示如下:
powershell
commit bafbef5c3xxxxxxxxxxxxxxxxxxxxx (HEAD -> master, origin/master, origin/HEAD)
Merge: 249a5c9 ce44efe
Author: san.zhang <san.zhang@xxx.com>
Date: Mon Jul 17 17:30:04 2023 +0800
Merge remote-tracking branch 'origin/master' into master
commit 249a5c9xxxxxxxxxxxxxxxxxxxxx
Date: Mon Jul 17 17:29:45 2023 +0800
移除fastjson
commit ce44efxxxxxxxxxxxxxxxxxxxxxx (xxxxx)
Merge: 3d054be c6fdcc9
Author: si.li <si.li@xxx.com>
回退到commitID为ce44efxxxxxxxxxxxxxxxxxxxxxx 的版本上,操作如下:
powershell
$git reset --hard ce44ef**********
其中需要注意下不同参数的区别
--soft: 使用git reset --soft ,HEAD(当前分支)将被移动到指定的提交(commit),暂存区(Index)和工作目录不会被改变。这意味着在这个commit之后的所有提交都会保留在暂存区中,这样你就可以重新提交它们,或者根据需要修改它们。
--mixed: 这是git reset的默认模式,你可以使用git reset --mixed 或者简写为git reset 。在这种模式下,HEAD被移动到指定的提交,暂存区(Index)也会被重置,但工作目录不会被改变。这意味着在这个commit之后的所有提交都会从暂存区中移除,但它们仍然保留在工作目录中。你可以根据需要重新暂存和提交这些更改。
--hard: 使用git reset --hard ,HEAD被移动到指定的提交,暂存区(Index)和工作目录都会被重置。这意味着在这个commit之后的所有提交都将完全丢失,工作目录将恢复到这个commit的状态。这是一个危险的操作,因为它会永久删除未提交的更改,所以在执行此操作之前,请确保你没有未保存的工作。
总结:
--soft:仅移动HEAD,保留暂存区和工作目录。
--mixed(默认):移动HEAD,重置暂存区,保留工作目录。
--hard:移动HEAD,重置暂存区和工作目录,可能导致未提交的更改丢失。。
然后进行强推操作,将远程master分支回退到历史版本
powershell
$git push -f origin master
这时候显示错误:
powershell
hello@kusha7401 MINGW64 /d/git_vivado_code/CMMS/doc (master)
$ git push -f origin master
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To http://192.168.188.48/szyt_fpga/CMMS.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://192.168.188.48/szyt_fpga/CMMS.git'
一般查找后发现,是因为gitlab中对master设置了保护,需要先解除保护,再推,推完后再加上保护.
点击按钮"unprotect",取消保护,再进行推送,发现正常,推送后再加上保护即可。
注:参考文件
https://blog.csdn.net/zzs1067632338/article/details/131781475 https://blog.csdn.net/zhaohongfei_358/article/details/127729172
6.13撤销commit
https://www.python100.com/html/WK3MW3W340Q7.html
6.14Git删除文件
powershell
$git rm *.*
$git add -u
$git commit -m 'delete discarded files'
$git push
注: 参见:git本地仓库 删除文件
https://blog.csdn.net/david___/article/details/53761050
6.15git stash命令用法
*暂存代码
powershell
$ git stash save 'master_index_1101'
*下载最新代码
powershell
$git pull
*查看暂存代码
powershell
$git stash list
*将暂存代码下载到本地
powershell
$git stash pop
注:参见git stash命令用法详解
https://blog.csdn.net/weixin_44799217/article/details/128277154
6.16获取最近一次提交的作者信息
使用git log命令获取最近一次提交的作者信息:
git log -1 --pretty="%an <%ae>"
powershell
git log -1
这将返回最近一次提交的作者名和邮箱。
6.17当commit后,发现之前有人提交,不能push如何处理?
(https://blog.csdn.net/weixin_46713695/article/details/126745646)
当commit后,进行push时,发现有人之前提交,导致不能push,如下图:
原因分析:
是由于本地和远程仓库两者代码文件不同步,因此需要先pull,进行合并然后再进行push
解决方法:
1、先使用pull命令:
powershell
git pull --rebase origin master(分支名,或develop)
2、再使用push命令
powershell
git push -u origin master