Git 的简单应用
一 Git的核心概念
一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
*它的核心是一个数据库,保存了项目的每一次更改,并且可以通过这些更改来创建分支、合并代码、查看历史记录等。*
-
仓库(Repository)
-
Git仓库是存储项目所有版本历史记录的地方。
-
它包含了项目的所有文件、目录、提交信息、分支、标签等。
-
仓库可以位于本地计算机上,也可以托管在远程服务器上。
-
-
工作区(Working Directory)
-
工作区是开发者进行日常开发的地方,包含了项目的实际文件。
-
当从Git仓库中检出(checkout)一个分支时,该分支上的文件会被复制到工作区。
-
开发者在工作区中对文件进行编辑、添加或删除等操作。
-
-
暂存区(Staging Area 或 Index)
-
暂存区是Git用来准备提交的一个区域。
-
开发者将工作区的文件通过
git add命令添加到暂存区,以便在后续的提交中包含这些更改。
-
-
提交(Commit)
-
提交是Git中的基本操作,代表了一次版本的保存记录。
-
每次提交会生成一个唯一的SHA-1哈希值作为标识符。
-
提交包含了项目的当前状态、代码、元数据(如提交者、提交时间、提交信息等)。
-
通过
git commit命令,开发者可以将暂存区的更改提交到Git仓库中。
-
-
分支(Branch)
-
分支用于同时进行多个任务、多个版本的开发。
-
主分支一般是
master或main,用于保存最终的稳定版本。 -
开发者可以创建新的分支来开发新功能或修复bug,而不会干扰到其他分支的开发工作。
-
通过
git branch、git checkout等命令,开发者可以查看、创建、切换和删除分支。
-
-
合并(Merge)
-
合并是将一个分支的修改内容合并到另一个分支的过程。
-
当一个分支的开发完成或需要与其他分支(如主分支)同步时,可以通过合并操作将其修改内容合并到目标分支中。
-
Git使用三方合并算法来自动合并代码冲突。
-
通过
git merge命令,开发者可以将一个分支的更改合并到当前分支中。
-
-
分布式版本控制
-
Git是一个分布式版本控制系统,意味着每个开发者都有自己的本地仓库。
-
本地仓库包含了项目的所有历史记录、分支、标签等。
-
开发者可以在本地仓库上进行开发工作,并与其他开发者的本地仓库进行同步。
-
通过
git clone、git push、git pull等命令,开发者可以克隆远程仓库、推送本地更改到远程仓库、从远程仓库拉取最新更改。
-
-
SHA-1散列算法
-
Git使用SHA-1散列算法来识别和组织存档的文件内容。
-
这确保了代码库中的数据不被篡改且保持一致性。
-
每个提交、文件或目录都有一个唯一的SHA-1哈希值作为其标识符。
-
二 现实情况
1 建立新仓库并提交代码
以下都是先建立远程仓库
- 远程未建立文件
1. 初始化仓库 git init 2. 提交代码 git add . 3. 提交信息 git commit -m '信息' 4. 添加远程仓库 git remote add origin https://gitee.com/账号名/仓库名.git 5. 推送代码 git push origin master
- 远程仓库已经有文件
1. 远程仓库建立分支 2. 克隆远程仓库 git clone https://gitee.com/用户名/仓库名.git 3. 将要提交的代码复制到本地仓库,再去本地仓库打开Bash 4. 提交代码 git add . 5. 提交信息 git commit -m '信息' 6. 推送代码 git push origin master
2 克隆新代码并进行开发
1. 克隆远程仓库代码 git clone 远程仓库地址 2. 切换到develop分支进行开发 git checkout develop 3. 把master分支合并到本分支 [仅此一次] git merge master 4. 修改代码 5. 提交代码 git add . git commit -m '注释' git push origin develop
3 开发代码被团队成员修改
1. 切换到develop分支 git checkout develop 2. 拉取代码 git pull origin develop 3. 继续开发 4. 提交代码 git add. git commit -m '' git push origin develop
4 完成开发
1. 将develop合并到master上 git checkout master git merge develop git push origin master 2. develop也推送到远程 git checkout develop git merge master git push origin develop
5 快速解决冲突
1. 安装 beyond compare 2. 在git中配置 git config --local merge.tool bc3 git config --local mergetool.path '/usr/local/bin/bcomp' git config --local mergetool.keepBackup false 3. 应用beyond compare解决冲突 git mergetool
6 创建项目
git tag -a v1.0 -m '版本介绍' 创建本地并添加tag信息 git tag -d v1.0 删除tag git push origin --tags 将本地tag信息推送到远程仓库 git pull origin --tags 更新本地tag版本信息 git checkout v.10 切换tag git clone -b v0.1 地址 指定tag下载代码
7 开发项目的部分代码
git clone https://github.com/用户名/仓库名.git cd 仓库 git checkout dev git checkout -b dzz # 创建 dzz分支 写代码 git add . git commit -m '部分功能' git push origin ddz
8 测试开发代码
1. 基于dev分支创建release分支 git checkout dev git checkout -b release 2. 测试 3. 合并到master git pull origin requset 或 git checkout master git merge release 4. 在master分支打tag git tag -a v2 -m '版本信息' git push origin --tags 5. 运维人员下载代码 git clone -b v2 地址
9 配置
- 项目配置文件:项目/git/config
git config --local user.name‘武沛齐’ git config - -local user.email 'wupeiqi@xx.com'
- 全局配置文件:~/.gitconfig
git config --global user.name 'wupeig' git config --global user.name 'wupeiqi@xx.com'
- 系统配置文件:/etc/.gitconfig
git config --system user.name 'wupeiq' git config --system user.name 'wupeiqi@ xx. com' 注意:需要有root权限
10 免密码登录
具体看相应官方文档
- http
git remote add origin https://用户名:密码@github.ccom/用户名/仓库名.git
- ssh
1. 生成密钥 ssh-keygen # 默认放在 ~/.shh 目录下,id_rsa.pub 公钥, id_rsa 私钥 2. 将密钥设置到gitee或gitee 3. 在git本地配置 git remote add orgin git@github.com:用户名/仓库名.git
- 衍合到其它分支
1. 新建远程仓库分支 2. 新建本地分支 git branch <new-branch> 3. 切换到新分支 git checkout <new-branch> 4. 拉去新分支 git pull origin <new-branch> 5. 衍合master分支 git rebase <branch> 6. 推送新分支 git push -u origin new-branch-name # -u 设为上游分支

常用命令
master 默认开发分支 origin 默认远程版本库 Head 默认开发分支 Head^ Head 的父提交
1 创建版本库
git clone <url> # 克隆远程版本库 git init # 初始化本地版本库
2 查看
git status # 查看状态 git diff # 查看变更内容 git log # 查看提交历史 git log -p <file> # 查看指定文件的提交历史 git blame <file> # 以列表方式查看指定文件的提交历史
3 修改
git mv <old> <new> # 文件改名 git rm <file> # 删除文件 git rm --cached <file> # 停止提交文件但不删除 git commit -m "commit message" # #提交所有更新过的文件 git commit --amend # #修改最后一次提交
4 提交
git add . # 提交所有改动过的文件 git add <file> # 跟踪指定的文件
5 撤销
git reset --hard HEAD # 撇消工作目录中所有未提交文件的修改内容 git checkout HEAD <file> # 撤消指定的未提交文件的修改内容 git revert <commit> # 撤消指定的提交
6 分支与标签
git branch # 显示所有本地分支 git branch <new-branch> # 创建新分支 git branch -d <branch> # 删除本地分支 git checkout <branch/tag> # 切换到指定分支或标签 git tag # 列出所有本地标签 git tag <tagname> # 基于最新提交创建标签 git tag -d <tagname> # 删除标签
7 合并与衍合
git merge <branch> # 合并指定分支到当前分支 git rebase <branch> # 衍合指定分支到当前分支
8 远程操作
git remote -v # 查看远程版本库信息 git remote show <remote> # 查看指定远程版本库信息 git remote add <remote> <url> # 添加远程版本库 git fetch <remote> # 从远程库获取代码 git pull <remote> <branch> # 下载代码及快速合井 git push <remote> # 上传代码及快速合并 git push <remote> :<branch/tag-name> # 删除远程分支或标签 git push --tags # 上传所有标签
- 拉取代码
git pull origin dev 等价于 git fetch origin dev git merge origin/dev

浙公网安备 33010602011771号