本文共 4823 字,大约阅读时间需要 16 分钟。
单人开发
过程中,需要进行版本管理,以利于开发进度的控制
多人开发
过程中,不仅需要版本管理,还需要进行多人协同控制
分布式版本控制系统
,用于敏捷高效的处理任何或大或小的项目管理 Linux 内核
开发而开发的一个开放源码的版本控制软件下载 Git
安装 Git
(下一步即可)
# 安装后,打开终端# 如下信息会在提交代码时要使用,记录在你的每次提交中,以后才知道哪次提交是谁做的# `git log` 可以查看# 执行git config --global user.name "Name" # 用户名git config --global user.email "Email" # 邮箱# 查看信息git config -l# 测试: 终端中执行,查看 git 版本git version
版本库
:工作区中有一个隐藏目录 .git
, 这个目录不属于工作区
,而是 git 的版本库
,是 git 管理的所有内容暂存区
:版本库中包含一个临时区域
,保存下一步要提交的文件
分支
:版本库中包含若干分支,提交的文件存储在分支中
目录
,这个目录中的所有文件被 git 管理起来项目的根目录
,作为仓库# 选择一个空目录,执行指令:`git init`# Initialized empty Git repository in "文件目录"# 初始化了一个空白的 git 仓库# 目录上出现一个略显白色的 .git 隐藏文件夹# 暂存与分支都会存在这个文件夹中
# 整体的文件目录空间## git 仓库目录## 工作区
git init
的目录即为工作区,不包含 .git
目录工作区
新建,然后可以存入仓库
(版本库),进行版本控制
git status
可以看到工作区中文件的状态
# No commits yet 还没有任何的提交过程# Untracked files: 文件未跟踪 # test.html test 文件就是未跟踪的文件# nothing added to commit but untracked files present# 除了未跟踪的文件外,没有添加到提交
git add .
将工作区
中的文件全部存入暂存区
# git add . 将文件`从工作区提交到暂存区`# . 代表工作区中所有的文件# 提交到暂存区后将不是未跟踪的状态# `test` 文件变为 `new file`, 即仓库中`新建的文件`# `test` 文件存放到`暂存区`中
git commit -m 'xxx'
将暂存区
中的文件全部存入分支
,形成一个版本 # git commit -m 'xxx'# -m 为 -message 的缩写# 'xxx' 为此分支的`描述信息`# -m 'xxx' 为必填项
远程仓库
码云
注册账号,并登录# 新建仓库(空仓库/裸库)# 自动添加路径# `zx` 为用户名# `zxwin_git` 为远程仓库的名字# `HTTPS/SSH` 为远程仓库访问的两种协议## 即 `https://gitee.com/zhang_xin12138/zxwin_git.git`为`zxwin_git`远程仓库`https`协议下的远程地址## 即 `git@gitee.com:zhang_xin12138/zxwin_git.git`为`zxwin_git`远程仓库`ssh`协议下的远程地址
git remote add origin 远程地址
将远程地址都关联到本地,这样本地才知道要找哪个远程地址 git remote -v
查看关联的地址地址名 + 地址
git push origin master
用户名
与密码
将本地 master 传给远程 master
)commit
的内容 push
到远程仓库,以共享自己的代码 git clone 仓库地址
将其复制到本地
git pull origin master
拉取
远程仓库修改后的内容1 file changed
为远程仓库更新
的文件 修改
本地的项目文件后git add .
存入暂存区git commit -m "xxx"
存入分支git push origin master
推送新增的文件到远程仓库 命令 | 作用 |
---|---|
git remote add origin 远程地址 | 本地关联远程仓库 |
git push origin master | 将本地仓库内容上传到远程仓库 |
git pull origin master | 从远程仓库下载内容到本地仓库 |
git clone 远程地址 | 将远程仓库复制到本地,并自动形成一个本地仓库 |
git commit
形成一个个版本,一个个版本依次存储在分支的一个个提交点上 查看
当前仓库的分支 git branch
master 分支
git commit
时,默认是在 master
分支上保存版本 master分支
上做操作开发用的分支
,在此分支上做版本的记录master分支
上*
号标记的为有效分支
git commit
提交的文件依然提交给master
分支master分支
dev分支
,则后续的git commit
便会在dev
分支上新建版本(提交点) 指针
,新建一个分支,首先是新建一个指针
同一个提交点
master分支
和新分支
,分别进行git add
和git commit
提交日志
,进而看到分支中提交点的详细情况
git log --online
简易日志git log
完整日志git merge 分支a
合并分支a快速合并
和三方合并
移动指针
即可 三方合作
两个分支进行合并,但他们含有对同一个文件的修改
,则在合并时出现冲突
,git
无法决断该保留
改文件哪个分支的修改
冲突演示
master
分支修改a文件div
分支修改a文件master
分支 合并dev
分支 git merge dev
CONFLICT(content): Merge conflict in a文件
git
会将两个分支的内容都展示在文件中冲突解决
File > Settings
关联过程是自动的新建项目后,将项目目录创建为git
仓库
注意
: 要设置忽略文件
“.gitignore
”作用
: 被忽略的文件会被版本记录忽略,版本中不包含他们范围
: 不需要和其他开发共享的文件VCS/Commit...
Unversioned Files 4 files
VCS/Git
VCS/Git/Pull
Accept Yours
保留本地
Accept Theirs
保留远程
Close
",然后在idea
中修改,再commit
idea
中创建一个初始项目,其中包含.gitignore文件
,并在项目根目录下建立本地库
,并建立dev分支
开发成员列表
中,使得其他开发人员可以访问该远程库idea
中clone
远程库,获取项目。会建立本地库dev分支
上进行。开发完一个功能并测试通过后就commit
提交到本地的dev分支
中,然后上传(push
)到远程dev分支
中更新项目
内容时,通过pull
从远程仓库拉取内容注意
: 多人协同时,每次在push
到远程库前,都先做一次pull
后续的开发,会接到一个个的功能任务,往复操作2,3,4
https
协议做push
时,如果曾经使用过码云,但密码有过改动
,此时会报错https
协议报错 You do not have permission to push to the repository via HTTPS
控制面板 > 凭据管理器 > 删除对应凭证
,再次使用时会提示重新输入密码push
即可(输入用户名,密码)Git
协调任务,这里看网上教学视频,做的笔记转载地址:http://hdqwi.baihongyu.com/