Git 的简单应用

一 Git的核心概念

一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

*它的核心是一个数据库,保存了项目的每一次更改,并且可以通过这些更改来创建分支、合并代码、查看历史记录等。*
  1. 仓库(Repository)

    • Git仓库是存储项目所有版本历史记录的地方。

    • 它包含了项目的所有文件、目录、提交信息、分支、标签等。

    • 仓库可以位于本地计算机上,也可以托管在远程服务器上。

  2. 工作区(Working Directory)

    • 工作区是开发者进行日常开发的地方,包含了项目的实际文件。

    • 当从Git仓库中检出(checkout)一个分支时,该分支上的文件会被复制到工作区。

    • 开发者在工作区中对文件进行编辑、添加或删除等操作。

  3. 暂存区(Staging Area 或 Index)

    • 暂存区是Git用来准备提交的一个区域。

    • 开发者将工作区的文件通过git add命令添加到暂存区,以便在后续的提交中包含这些更改。

  4. 提交(Commit)

    • 提交是Git中的基本操作,代表了一次版本的保存记录。

    • 每次提交会生成一个唯一的SHA-1哈希值作为标识符。

    • 提交包含了项目的当前状态、代码、元数据(如提交者、提交时间、提交信息等)。

    • 通过git commit命令,开发者可以将暂存区的更改提交到Git仓库中。

  5. 分支(Branch)

    • 分支用于同时进行多个任务、多个版本的开发。

    • 主分支一般是mastermain,用于保存最终的稳定版本。

    • 开发者可以创建新的分支来开发新功能或修复bug,而不会干扰到其他分支的开发工作。

    • 通过git branchgit checkout等命令,开发者可以查看、创建、切换和删除分支。

  6. 合并(Merge)

    • 合并是将一个分支的修改内容合并到另一个分支的过程。

    • 当一个分支的开发完成或需要与其他分支(如主分支)同步时,可以通过合并操作将其修改内容合并到目标分支中。

    • Git使用三方合并算法来自动合并代码冲突。

    • 通过git merge命令,开发者可以将一个分支的更改合并到当前分支中。

  7. 分布式版本控制

    • Git是一个分布式版本控制系统,意味着每个开发者都有自己的本地仓库。

    • 本地仓库包含了项目的所有历史记录、分支、标签等。

    • 开发者可以在本地仓库上进行开发工作,并与其他开发者的本地仓库进行同步。

    • 通过git clonegit pushgit pull等命令,开发者可以克隆远程仓库、推送本地更改到远程仓库、从远程仓库拉取最新更改。

  8. 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 公钥设置 - Gitee.com

  • 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
posted @ 2024-05-17 10:57  stars-AI  阅读(0)  评论(0)    收藏  举报  来源