# 赏金酒馆 **Repository Path**: HX-SoftwareEngineering/CourseDesign ## Basic Information - **Project Name**: 赏金酒馆 - **Description**: 我们组的课程设计仓库 - **Primary Language**: 其他 - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-06-14 - **Last Updated**: 2021-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 课程设计 #### 介绍 我们组的课程设计仓库 # GIT 基本用法 ## 生成 SSH Key ssh 可以配置免密登录,是一种安全又方便的技术,使用下边的命令可以生成 一个随机的 ssh key。 ```bash ssk-keygen ``` 按下回车键后会提示输入几个参数,可以在生成过程中全部使用默认参数,也可以随便修改参数。 Linux 下默认生成路径是 ~/.ssh/id_rsa.pub(大概) Windows 下默认生成路径是 C:\User\\<当前用户名>\\.ssh\id_rsa.pub 生成完毕后就可以去上边提到的目录,找到生成的 key 并用记事本打开,复制全部内容备用。 ## Gitee 配置 SSH Key 1. 登录 Gitee 账号,点击个人头像,找到 设置 按钮 2. 进入设置 找到 安全设置 的区域 的 ssh 公钥,将刚才复制的 key 粘贴到 公钥 区域,点击确定按钮 3. 添加成功后,这部分就结束了。 4. 注意,这个只需要设置一次,只要你不修改 git 的配置,不换新机器,不重装 git。 ## 设置 用户名 和 邮箱 ```bash git config --global user.name "<用户名>" ``` ```bash git config --global user.email "<邮箱>" ``` 这里设置的 用户名 和 邮箱 指的是 以后提交时使用的 用户名 和 邮箱,加上 --global 参数就表示设置为全局参数,也就是只需要设置一次这个就行,以后的提交都使用这个身份。 注意,这个也只需要设置一次,只要你不修改 git 的配置,不换新机器,不重装 git。如果你想换个名字,那也是可以重新设置的。 ## 克隆仓库 进到仓库页面,可以看到很显眼的 克隆/下载 按钮,点击它。 这时会出现几个 tab :HTTPS SSH SVN SVN+SSH 在配置了 SSH Key 后,我们一般使用 SSH 的链接,切换到 SSH tab 点击 复制 按钮,这个链接就算下边用到的 仓库克隆地址 ```bash git clone <仓库的克隆地址> ``` 这个命令会把远端仓库克隆到本地的一个新建文件夹内,具体可以看命令提示 ```bash clone into "<文件夹名>" ``` 克隆过后需要使用 ```cd ``` 命令进入仓库目录,后续的操作都应在仓库目录进行。当然,也可以先做好修改(增删改) 最后放入仓库目录就好。 ## 使用 SSH Key 的好处 配置了 SSH Key 后,使用 SSH 链接 克隆的仓库可以不用账号密码就能登录 ## 更新仓库文件 当在仓库目录做了修改之后,想要上传到仓库时,需要进行三个步骤: 1. 添加修改 ```bash git add <修改了的文件名> ``` 这个命令会把修改过的文件添加到 缓冲区(?)以便待会儿提交 也可以使用 ```bash git add . ``` 这个命令会把当前目录下所有修改过的文件添加进 缓冲区(?)递归添加嗷 2. 提交修改 ```bash git commit -m "修改说明" ``` 这个命令会在本地生成一个提交记录,以便待会儿推送。 3. 推送修改 ```bash git push ``` 这个命令会把当前分支的提交记录推送到远端与之对应的分支下。 当然,分支名称可以随意,可以与远端不同样。这就涉及到高级用法了,我们暂时用不着,不予考虑。 ## 分支操作 1. 切换分支 仓库刚刚克隆下来一般默认是处于 master 分支的,如果需要切换到其他分支,可以使用下边的命令 ```bash git checkout <分支名> ``` 或者 ```bash git switch <分支名> ``` 2. 增加分支 如果需要添加本地分支,则可以运行下边的命令 ```bash git checkout -b <分支名> ``` 但,这么做只是增加了本地分支,这个分支是没办法直接使用 git push 上传的,必须手动指定上游分支地址才行。那样总感觉有点麻烦,所以我更推荐使用下边的方法 在 git 仓库页面点击 分支 按钮,这时就会出现 新建分支 按钮,设置起点分支,也就是要基于哪个分支派生新的分支;输入新分支名称,点击提交就能创建一个新的远端分支了。 -b 参数的意义是:创建并切换到新建的分支下,十分的人性化。 还有一种创建分支的方法 ```bash git branch <分支名> ``` 这个命令只会创建分支,而不会切换到新建分支。 3. 删除分支 如果需要删除本地分支,可以使用下边的命令 ```bash git branch -d <分支名> ``` 这样只是删除了本地分支嗷,如果是要删除远端分支还是推荐使用网页端,更简单。 一样的,先进入仓库页面,点击分支,再选中要删除的分支,最后点击 删除分支按钮。 **注意** 删除需谨慎!!! 4. 显示分支 如果需要显示当前本地仓库有哪些分支,可以使用下边的命令 ```bash git branch ``` 分支前带有一个 * 的表示是当前所在分支 ## 常见问题 ### 新克隆仓库只有 master 分支 暂时只发现一个方法:手动对每个分支 checkout,比如我要在本地创建 develop 分支,那就运行 ```bash git checkout develop ``` 这时,git 会提示 ```bash Switched to a new branch 'develop' Branch 'develop' set up to track remote branch 'develop' from 'origin'. ``` 表示 设置本地分支 develop 的上游分支 为 develop 其他分支也可以进行类似的操作 ### push 失败 ​ 一般是由于远端仓库与本地不同步(远端仓库有了新的提交)所导致的,最简单的方法就是: ​ 在本地运行以下命令 ```bash git pull --ff ``` ​ 因为问题出在文件不同步,而且远端仓库比本地新。所以需要先 pull 拉取一下新的提交,然后使用 --ff 选项 (FastForward )合并提交 当冲突解决后就能顺利 push 了 顺便说下,绝对不要使用 -f 参数(强制推送)特别是在团队协作时,这样做会使得其他成员丢失他们的提交!! ### git pull 后出现 Merge * 等一堆英文,键盘好多按键点击无反应 这大概率是使用了 git pull (没带 --ff 参数)这个时候会自动 merge 这个界面就是叫你填写 merge commit 默认使用的应该是 vim 编辑器 如果你要修改 merge commit 那就点击 i 键,进入 Insert 模式,修改完毕后使用 Esc + : wq 保存并退出。 如果不需要修改 merge commit 那就直接使用 Esc + :q 退出 ## 多人协作 一般是在初始化仓库后,只含有一个 master 分支,团队成员每人基于最初的 master 新建一个分支并 clone 一个副本到本地, 所有的操作都基于自己的分支,在自己的分支上提交并上传。当自己分支上的版本成熟后,觉得可以合并到 master 分支之后,基于自己的分支,向 master 提交一个 pull requests 。之后就是等待项目负责人审核、合并分支了。 ~~我们的项目并没有用这种方式提交,这时后来才意识到的。~~ ## 写在最后 这次课程设计让我们学到的很多东西,特别是基于 GIT 的团队协作 方法,不得不说的是:git 处理分支冲突真是麻烦嗷~ 虽然没能写代码,感觉代码才是 GIT 的正确打开方式。不知道是不是我理解有误。