因为使用到Git,所有这里按照需要整理了一个文档。主要用来管理代码。
准备工作
- 登录到服务器创建仓库
- 管理员会提供url/username/password。
-
提示:
- 使用git无法远程创建仓库
- 远程创建仓库有如下两种方式:
- github提供了API接口,可以使用程序在服务器创建仓库。
- 使用ssh通信的,如果对方开放ssh用户权限,也可以使用ssh登录远程,像本地一样创建。(提示使用telnet也是可以的,不过telnet已经不推荐使用)
-
说明:
- 本文统一的服务器仓库为:
http://*.*.*.*:3000/*****/ai.git
- 本文统一的服务器仓库为:
- 安装git客户端
- 下载地址:
https://www.git-scm.com/download
- 向导式安装
- 下载地址:
常见操作方式
关联本地仓库到服务器仓库
- 关联到远程服务器仓库
- 命令:
git remote add aimodel http://*.*.*.*:3000/*****/yangqiang/ai.git
- aimodel是本地关联名,可以代替服务器使用,而不是直接使用服务器参数。
- 查看已经关联的远程服务器仓库名
- 命令:
git remote -v
- 删除远程仓库的关联
- 命令:
git remote rm aimodel
- 命令:
- 下面是操作截图:
- 关联到远程仓库并指定用户名与密码
- 命令:
git remote add aimodel http://yangqiang:yangqiang@*.*.*.*:3000/*****/ai.git
本地提交管理
-
准备一个文件一个目录
- 用来说明文件与目录的提交
-
创建本地仓库
- 直接把当前目录作为仓库。
- 命令:
git init
- 添加文件与目录到仓库
- 命令:
git add .\*
- 提交文件与目录到仓库
- 命令:
git commit -m "文件目录提交"
: 设置提交信息描述 - 命令:
git commit -a
: 全部提交
- 查看更改状态
-
命令:
git status -s
或者git status
-
说明:
- 可以修改一个文件,在看看装填。会使用默认编辑器打开变化的文件信息。
-
操作截图
- 提交信息的显示,使用默认编辑器,记得提交的时候使用 -m 选项指定信息。
- 说明:
- 关于git add:
- git add -A 保存所有的修改
- git add . 保存新的添加和修改,但是不包括删除
- git add -u 保存修改和删除,但是不包括新建文件。
- 关于git add:
同步仓库到服务器
- 同步前的准备:同步服务器的库到本地
- 本地必须使用README.md文件,可以是使用命令从服务器拉取产生。
- 命令:
git pull --rebase aimodel master
- 提交前查看下,变更的文件是否正确提交,就是绿色状态、
- 命令:
git status
- 同步到服务器
-
命令:
git push --set-upstream aimodel master
-
同步到服务器的截图
- 同步到服务器的结果截图
- 建议:
- 强烈建议本地的仓库与服务器仓库一致。
克隆服务器仓库到本地
- 克隆仓库到本地,直接克隆即可,克隆的本身就是仓库。
- 本地不需要再建仓库
- 命令:
git clone http://yangqiang:yangqiang@*.*.*.*:3000/*****/ai.git
- 从仓库克隆文件
使用分支工作
- 创建分支
- 命令:
git branch master
- 查看分支
- 前面带
*
的就是当前分支。
- 前面带
- 命令:
git branch
- 切换分支
- 命令:
git checkout 分支名
- 合并分支
- 合并分支,首先要切换到主分支。然后再合并,然后同步到服务器。
-
命令1:
git checkout master
-
命令2:
git merge 分支名
-
注意:
- 分支建议交给组长合并,然后再提交到服务器。
工作场景建议
项目结构与设计
- 组长设计好项目结构,并创建仓库,并创建好目录。
- 在仓库服务器上进行。
组员的工作流程与操作
- 组员在本地创建一个仓库,并关联服务器仓库
- 命令:
git remote add aimodel http://yangqiang:yangqiang@*.*.*.*:3000/*****/ai.git
- 组员拉取服务器仓库内容
- 命令:
git pull --rebase aimodel master
- 组员创建分支工作
- 并提交到服务器
-
命令:
git branch yangqiang
:创建分支 -
命令:
git checkout yangqiang
:切换分支 -
命令:
git add .
:添加分支文件到本地仓库 -
命令:
git commit -a -m "提交说明"
:提交版本到本地分支 -
命令:
git push --set-upstream aimodel yangqiang
:同步本地分支到服务器 -
组员的操作截图
组长的流程与操作
- 当代码确认没有问题后,告诉组长,组长进行分支合并
-
组长首先拉取组员的分支到本地,然后进行合并操作;
-
注意:组长必须clone,使用pull会存在一些问题。
-
-
命名:
git clone http://yangqiang:yangqiang@39.98.59.185:3000/yangqiang/ai.git
:克隆服务器仓库到本地 -
命令:
git checkout -b yangqiang origin/yangqiang
:建立与服务器分支一样的本地分支- b选项指定本地分支名
-
命令:
git checkout master
:切换到主分支 -
命令:
git merge yangqiang
:合并分支 -
命令:
git push --set-upstream origin master
:同步合并的主分支到服务器仓库 -
组长集成合并的操作截图
问题:合并中存在的合并冲突
- 在合并中,如果主分支也修改,其他分支也修改,会产生合并冲突,一般在合并的时候会产生一个把两个版本集成在一起的文件,需要用户自己修正的版本文件,修改后提交即可。下面是操作过程。
问题模拟
- 提示:分支与主分支修改同一个文件,因为分支的切换,看到的内容是不同的。
- 切换到分支,修改文件,提交
- 分支操作截图
- 切换到主分支,修改文件,提交
- 与上面操作一样,而且修改的是同一个文件,党切换分支的时候,同一个文件的内容是不同的,就是版本是不同的。
- 主分支操作截图
合并操作
- 切换到主分支合并
- 合并操作截图
冲突处理
- 合并冲突产生的合并文件
- 修改冲突文件
- 提交并同步到服务器
- 提交操作截图
- 查看服务器仓库的更新
- 服务器内容更新截图
网友评论