git,github,gitee,gitlab使用方法
时间:2023-04-30 12:54:02 | 来源:网站运营
时间:2023-04-30 12:54:02 来源:网站运营
git,github,gitee,gitlab使用方法:
1、Git,github,gitee,gitlab简介
1.1 git
Git:一个免费的、开源的
分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。 有廉价的本地库,方便的暂存区域和多个工作流分支等特性。
1.2 版本控制工具
集中式版本控制工具集中版本控制集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本。
好处:管理员轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
缺点:中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
分布式版本控制工具分布式版本控制Git、Mercurial等。像 Git 这种分布式版本控制工具,客户端提取代码仓库完整地镜像下来(本地库)。任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。
优点:服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的);每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
1.3 Git工作机制
工作机制在上述阶段中可以进行撤回。
1.4 Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
➢ 互联网
✓ GitHub(外网):GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。
✓ Gitee 码云(国内网站):有国内github之称。
➢ 局域网
✓ GitLab:一般公司内部使用,不对外开放。
2、Windows下Git安装
安装
官网地址:
https://git-scm.com/;基本都是下一步,可以考虑保存路径;
验证
Git Bash 终端里输入 git --version 查看 git 版本,如图所示,说明 Git 安装成功。
查看版本3、Git常用命令
用途 | 作用 |
设置用户名 | 设置用户签名 |
设置邮箱 | 设置用户签名 |
初始化 | git init |
状态 | 查看本地库状态,经常用到 |
增加提交项目 | git add 文件名,提交 |
提价并备注 | git commit -m “日志信息” |
日志 | 查看历史记录 |
日志 | 详细的记录 |
回溯版本 | 版本穿梭 |
删除文件【夹】 | git rm [-r] 文件【夹】 |
3.1 设置用户签名
命令表的1和2:添加账号
添加账号说明:签名的作用是区分不同操作者身份。每个版本可以看到签名信息。Git 首次安装必须设置一下用户签名,否则无法提交代码。
注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。
3.2 初始化本地库和状态查询
命令表的3和4:
初始化时本地文件夹下会多.git文件夹,第一次git status 时候显示未提交:
git init/git status新键一个git_test.txt文件后,再使用git status,会提示如下(检测未被追踪到的文件)
再次提交后的status3.3 提交暂存区
命令表的5:git add 文件名
颜色变成绿色,表示在暂缓区:
提交暂缓区:git add3.4 提交本地库
命令表的6:git commit -m “日志信息” 文件名
第一次提交第一次提交:git commit修改本地后的提示修改本地修改后的状态第二次提交第二次commit3.5 日志查询
命令表的7和8:git reflog/git log
git reflog/git log3.6 版本穿梭
命令表的7和8:git reset --hard 版本号
切回到第一个版本切回版本一默认指向最新的版本,通过修改指向的版本号,可以进行回退,同时本地工作区也会同步回退。
切回第二次提交的版本切回版本2可以看出又还原回来了。
3.7 打补丁patch的使用
在项目中使用
git add xxx #(xxx表示提交的)git commit -m "modify"git format-patch -1 -o ./modify #(-1表示指提交最近一次的变动,若是-5表示最近5次的;modify表示patch的文件夹)
4、分支和团队合作机制
4.1 分支简介
分支管理分支的好处- 同时并行推进多个功能开发,提高开发效率。
- 不影响已经提交的代码且可重复:某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
4.2 命令
序号 | 命令 | 作用 |
---|
1 | git branch 分支名 | 创建分支 |
---|
2 | git branch -v | 查看分支 |
---|
3 | git checkout 分支名 | 切换分支 |
---|
4 | git merge 分支名 | |
---|
5 | git tag 版本号 | 记录版本 |
---|
6 | git push 链接 版本号 | 版本号推送 |
---|
查看分支和创建分支查看和创建分支切换分支并分别在两个分支上修改切换分支会后可以通过git branch -v 可以看出,会时绿色,且括弧后有标志。
master分支修改并提交dev分支修改和提交合并和冲突合并和冲突冲突产生的原因:合并分支时,两个分支在
同一个文件的同一个位置
有两套不同的修改。Git 无法替我们决定使用哪一个。必须
人为决定
新代码内容。
解决冲突1)编辑有冲突的文件,删除特殊符号,决定要使用的内容:这里我都保留方式。
上图的特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码>>>>>>> dev
2)添加到暂存区
3)执行提交(注意:此时使用 git commit 命令时不能带文件名)
修改,提交暂存区,提交本地库4.3 团队协助
概念
代码托管中心:也即时远程库,是分布式管理系统的重要组成部分,这里可以理解为github,gitee,gitlab等。
具体操作可见下一章内容。
团队内协助拉取,克隆和推送跨团队合作
pull ,clone, push, fork request等5、GitHub操作
GitHub 网址:
https://github.com/看完了本地仓库,我们来看看远程仓库,首先从github入手。常见命令如下:
命令名称 | 作用 |
---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 起别名 |
git push 别名 分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
git branch -d 分支名 | 删除分支 |
git push remote_name -d remote_branch_name | 删除远端仓库分支:例如删除远端的test分支 git push origin -d test |
5.1 创建远程仓库
在已有账号的情况下,按照以下顺序输入:
创建远程仓库5.2 交互命令的使用(提交和拉取远程库)
修改别名:git remote add ori
https://github.com/yifanhunter/git_test.git推送本地库到远程库:git push ori master
提示:这里可能报错Logon failed, use ctrl+c to cancel basic credential prompt.,这里升级bash到2.36.1解决。也可以根据文末相关链接处理。推送到远程仓库clone到本地:git clone
https://github.com/yifanhunter/git_test.gitclone到本地从图片可以看出clone 会自动进行:拉取代码》初始化本地仓库》创建别名(origin)
5.3 邀请其他人协作
邀请合作者
邀请成员点击复制邀请链接:
复制邀请链接https://github.com/yifanhunter/git_test/invitations登录yifanhanguang账号,复制链接,即可看到以下邀请:
接受邀请新账户下的仓库假设上述5.2中所述的是yifanhanguang的本地clone,在此基础上演示协同修改,主要由于是一台机器演示,这里需要取消凭据管理器,如下图所示:
删除git的账号凭据依赖先修改文档,删除以上凭证,提交本地库,push到远程仓库,最后结果如下。而且通过主yifanhunter账号也可以看到修改,达成协同合作的效果。
协助人员提交后电脑凭证显示为协作者提交5.4 跨团队合作--fork
登录yifanyuanzhi账号,模拟外部人员,fork该仓库。
fork仓库可以和之前一样使用git修改,也可以通过页面编辑进行提交。为了能让对方进行合并,提交pull requests,再按照下图所示提交:
pull requests提交对方账号在pull requests处显示提交项目。
pull requests接收github不仅可存储代码,还有聊天功能;
如果j决得对方提交是何理的,可以点击merge pull request,这时Pull requests的提示会消失,并且内容合并完成。
GitHub聊天和pull request合并5.5 免密登录--SSH
目的:不用反复登录账号和密码。
出现以下形式,表示没有配置。
不能使用ssh配置步骤如下:删除.ssh》创建ssh》拷贝id_rsa.pub
wangyifan@LAPTOP-KHE3E7K4 MINGW64 ~ #进入家目录rm -rf .sshssh-keygen -t rsa -C yifanhuntercd .sshcat id_rsa.pub
复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像》Settings》SSH and GPG keys
拷贝本地密钥到远程账号后面该账号再往远程仓库 push 东西的时候使用 SSH 连接就不需要登录了。如下图所示。注意使用ssh的链接。
ssh的push6、其他知识
1 版本问题
RC=Release Candidate:发布候选版”,它不是最终的版本,而是最终版(RTM=Release To Manufacture)之前的最后一个版本。
测试有三个传统的称呼:alpha、beta、gamma,用来标识测试的阶段和范围。
- alpha 是指内测,即现在说的CB,指开发团队内部测试的版本或者有限用户体验测试版本。
- beta 是指公测,即针对所有用户公开的测试版本。
- gamma在beta版本做过一些修改,成为正式发布的候选版本时叫做,现在叫做RC(Release Candidate)。
2 github和gitee仓库同步的设置方法
https://gitee.com/help/articles/4336#article-header0 7、相关链接
- 版本问题导致提交错误的解决方法
- github加速方法