Git及GitHub使用教程
Git部分
Git概述
Git是一个免费的开源的分布式版本控制系统。
- 版本控制系统
版本控制系统是一种记录文件历史修改记录,以便将来查阅特定版本修订情况的系统。
- 集中式版本控制工具 VS 分布式版本控制工具
集中式版本控制工具:
- 特点: - 所有文件版本和历史记录存储在中央服务器上。- 开发者通过客户端从中央服务器检出最新版本的代码,并将更改推送回服务器。
- 优势: - 中央化的存储使得管理项目的权限控制更容易。- 管理员可以更轻松地控制项目的状态和权限。- 开发者只需了解中央服务器的概念,学习曲线相对较低。
- 缺点: - 协作过程中对中央服务器的依赖性较高,服务器故障可能导致开发中断。- 因为所有操作都涉及到与中央服务器的交互,对网络连接的要求较高。
分布式版本控制工具:
- 特点:- 每个开发者都有完整的项目副本(包括代码库和版本历史记录)。- 开发者可以在本地进行提交、分支、合并等操作,而不必依赖于中央服务器。
- 优势:- 本地操作速度快,不需要频繁与中央服务器交互,即使在没有网络连接的情况下也能进行大部分操作。- 分布式架构更适合团队分散、地理位置分布广泛的开发团队。- 更灵活的分支和合并机制,支持并行开发和多个工作流程。
- 缺点:- 对于一些新手来说,理解分布式版本控制系统的概念和工作流程可能有一定的学习曲线。- 由于每个开发者都有完整的项目副本,可能会占用更多的存储空间。
- 分区
工作区(git add)➡暂存区(git commit)➡本地库(生成历史版本 git push)➡远程库
- 代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般简称为“远程库”。
局域网:GitLab
互联网:GitHub、Gitee(码云)
Git常用命令
常用操作含义git config --global user.name 用户名设置用户签名git config --global user.email 邮箱地址**设置用户签名git config --list查看git配置信息git init初始化本地库git status查看本地库状态git add 文件名添加到暂存区git add .添加当前目录下所有的文件到暂存区git commit -m “日志信息” 文件名提交到本地库git reflog查看历史记录git log查看完整的记录git reset --hard 版本号版本穿梭cat 文件名**查看文件内容
- 步骤
设置用户签名
初始化本地库
添加暂存区
提交到本地库
- git内部vim的操作
ps: vim是文本编辑器,类似于windows的记事本,它有两个模式,一个是编辑(插入)模式,一个是命令模式
操作目的vim 文件名进入i编辑模式esc*命令模式:w + 回车保存(命令模式):wq 或者 ZZ保存并退出(命令模式):q!放弃修改并退出vim(命令模式):e!*放弃修改并返回命令模式(命令模式)
分支
- 常用操作
操作含义git branch 名称创建分支git branch -b 名称创建分支,并切换到新创建的分支git branch -v查看所有的分支git checkout 分支名切换分支git merge 分支名A**将分支Agit branch -m 名称A 名称B将分支A的名字修改为Bgit branch -m 名称A将当前分支改名为名称A
- 合并与冲突
冲突的产生:在要合并的两个分支中修改了相同的文件,然后分别添加到暂存区、提交到本地库之后在进行合并就会产生冲突。以下是冲突产生的一个例子:
冲突的解决方法:
(1) 首先打开文件(vim 文件名)
有三行特殊符号
<<<<<<HEAD
内容一
=======
内容二
>>>>>>> 分支A的名称
/**
其中,HEAD 指向的是当前的分支
内容一部分是当前分支修改的内容
内容二部分是分支A修改的内容
*/
(2) 切换到编辑模式,手动修改最终要保留的内容,最后再删除那三行特殊符号,然后保存并退出vim
(3)将文件添加到暂存区(git add 文件名)
(4)将文件提交到本地库(git commit -m “文件描述”)!!!注意此处不再添加文件名
团队协作
团队内协作
跨团队协作
GitHub部分
远程库操作
操作含义git remote -v查看当前所有远程地址的别名git remote add 别名 远程库地址为远程库起别名git push 别名/远程库地址 分支A推送本地分支A上的内容到这个别名对应的远程仓库的分支A(如果远程库没有A分支,则重新创建)git push 别名/远程库地址 分支A:分支B****推送本地仓库的分支A到远程仓库的分支Bgit clone 远程地址将远程库的内容克隆到本地git pull 远程库地址别名 远程分支A将远程库分支A的最先内容拉取下来后直接与本地当前分支合并
注意点:
- 远程库一般与本地库的名称一致
- 远程库别名一般与远程库名一致
- clone操作的三个小步骤:(1)拉取代码; (2)初始化本地库; (3)初始化分支名(默认为origin)
- 有多个账号在进行push、pull的时候,要去“凭据管理器”将其他的账号凭据删除才能进行
团队内协作
clone到本地库,然后修改完善,add到暂存区、commit到本地库、push到远程库(需要权限,如下)
邀请成员协作步骤:
settings -> manage access -> invite a collaborator -> 输入对方账号 -> 产生邀请函 -> 复制邀请函 -> 浏览器复制链接 -> 同意推送
-> 得到push权限
跨团队协作
协作步骤:
方法一:同团队协作
方法二:进入到项目 -> fork -> 在线编辑完成 -> pull request -> new pull reuest -> creat pull request -> 对方审核 -> merge pull request -> confirm merge
版权归原作者 懒羊羊大王呀 所有, 如有侵权,请联系我们删除。