# git_learn **Repository Path**: hrbu-2022/git_learn ## Basic Information - **Project Name**: git_learn - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-31 - **Last Updated**: 2025-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 配置身份信息 ```shell git config --global user.name "jshand" git config --global user.email "zhangjinshan21f@163.com" ``` # 初始化仓库 > git init ![git](imgs/image-20250331143029111.png) # 常用命令: ## 查看状态 git status ![image-20250331143144061](imgs/image-20250331143144061.png) ## 将文件加入到仓库 git add xxxx git add Readme.md git add imgs > git add . .代表当前文件夹,不用一个一个文件名枚举 ![image-20250331143415229](imgs/image-20250331143415229.png) add 执行完成之后 命令 git add . 将项目中未被跟踪的文件都加入到仓库中,它不提交这些文件,而只是让git开始关注他们。现在我们检查这个项目的状态,发现Git找到了需要提交的文件的一些修改,标签 new file 表示这些文件是新加入的。 ## 执行提交 git commit -m '改动日志' ![image-20250331143640140](imgs/image-20250331143640140.png) ## 查看历史 ``` git log --pretty=oneline ``` ![image-20250331150002531](imgs/image-20250331150002531.png) ## 远端仓库 gitlab 等工具 可以搭建 远端仓库(集中的仓库), ![image-20250331150224156](imgs/image-20250331150224156.png) ### 使用gitee 作为远端仓库 http://gitee.com 注册、登录 ## 创建远端仓库 gitee ![image-20250331152840218](imgs/image-20250331152840218.png) ![image-20250331152935241](imgs/image-20250331152935241.png) ![image-20250331153342484](imgs/image-20250331153342484.png) ## 推送 本机的改动日志,推送到远端仓库(gitee) 修改地址 https://gitee.com/jshand/git-test.git ``` git remote add origin https://gitee.com/jshand/git-test.git git push -u origin "master" ``` push需要填写 gitee.com网站的 账号和密码 ![image-20250331153844378](imgs/image-20250331153844378.png) ![image-20250331153857499](imgs/image-20250331153857499.png) ## 克隆仓库 git clone 仓库地址 ![image-20250331154948416](imgs/image-20250331154948416.png) 组员将组长 已经发布好的创建好的仓库 拉取克隆下来 ``` git clone https://gitee.com/hrbu-2022/yyzx.git ``` ![image-20250331155149364](imgs/image-20250331155149364.png) > 注意: > > 后续操作应该在 仓库的目录中, 需要执行一个cd xxx ![image-20250331155234858](imgs/image-20250331155234858.png) ## 拉取最新代码 > git pull ![image-20250331155811305](imgs/image-20250331155811305.png) # 图形界面 ## [TortoiseGit](https://tortoisegit.org/) https://git-scm.com/downloads/guis?os=windows ![image-20250331162310883](imgs/image-20250331162310883.png) ![image-20250331162428322](imgs/image-20250331162428322.png) ## 安装[TortoiseGit](https://tortoisegit.org/) 必须安装git bash ![image-20250331163041820](imgs/image-20250331163041820.png) ## 使用TortoiseGit ### 创建仓库 相当于 git init ![image-20250331163338988](imgs/image-20250331163338988.png) ### 添加到仓库 相当于git add ![image-20250331163500143](imgs/image-20250331163500143.png) ![image-20250331163534105](imgs/image-20250331163534105.png) ### 提交到仓库 git commit - m 'xxxxx' ![image-20250331163615874](imgs/image-20250331163615874.png) ![image-20250331163727620](imgs/image-20250331163727620.png) 当没文件没有执行 add的时候也可以 commit ![image-20250331163759825](imgs/image-20250331163759825.png) ### 查看状态 直接观察 文件或者文件夹的图标 ### 查看提交历史 git log ![image-20250331163923326](imgs/image-20250331163923326.png) ![image-20250331164009042](imgs/image-20250331164009042.png) ## 提交远端仓库 需要创建一个远端仓库,此处省略了 ![image-20250331164204208](imgs/image-20250331164204208.png) ![image-20250331164232268](imgs/image-20250331164232268.png) ### 点击【管理】 添加远端仓库 ![image-20250331164358514](imgs/image-20250331164358514.png) ![image-20250331164445596](imgs/image-20250331164445596.png) ### 推送 ![image-20250331164511272](imgs/image-20250331164511272.png) ## 解决冲突的问题 - 组长: 1. 创建一个仓库 2. 添加一个文件 A.java add 3. 提交到仓库 commit 4. 创建远端仓库 gitee.com 5. 推送到远端仓库push ``` public class A { public static void main(String args[]){ 第八行 System.out.prinltn("组长创建的项目 abc "); } } ``` - 组员: - 克隆仓库 - 组员、组长 - 同时操作 - 组长 - 第八行 abc --> System.out.prinltn("组长创建的项目 def"); - 新行 System.out.prinltn("组长创建的项目new "); - pull commit push - 组员 : 第八行 abc ---> System.out.prinltn("组长创建的项目 qqq "); - pull commit push ### 组长创建项目 ![image-20250401090002461](imgs/image-20250401090002461.png) 提交、 push ![image-20250401090042973](imgs/image-20250401090042973.png) ​ ### 组长: 创建远端仓库 ![image-20250401090217167](imgs/image-20250401090217167.png) ![image-20250401090159397](imgs/image-20250401090159397.png) ![image-20250401090209080](imgs/image-20250401090209080.png) ![image-20250401090226343](imgs/image-20250401090226343.png) ### 组长讲组员添加到仓库 ![image-20250401090438724](imgs/image-20250401090438724.png) ### 组员克隆 ![image-20250401090521538](imgs/image-20250401090521538.png) ![image-20250401090550752](imgs/image-20250401090550752.png) ![image-20250401090630338](imgs/image-20250401090630338.png) ### 组长修改 ![image-20250401090846716](imgs/image-20250401090846716.png) ### 组员也在开发 仅仅修改 abc -- -qqq commit push 执行push动作 失败了,提示 需要先拉取 ![image-20250401091133323](imgs/image-20250401091133323.png) 拉取的时候 产生了冲突 ![image-20250401091241965](imgs/image-20250401091241965.png) ### 解决冲突 ![image-20250401091339804](imgs/image-20250401091339804.png) ![image-20250401091427984](imgs/image-20250401091427984.png) ![image-20250401091519759](imgs/image-20250401091519759.png) ![image-20250401091533607](imgs/image-20250401091533607.png) 在已解决冲突的机器上重新提交、推送 ![image-20250401091649559](imgs/image-20250401091649559.png) # IDEA 集成Git 只要安装bash ,idea会自动识别,无需额外的操作 ## 基于IDEA演示常用的操作 ### 创建项目 ![image-20250401104356806](imgs/image-20250401104356806.png) ### 初始化仓库 ​ 命令行 : git init ![image-20250401104522758](imgs/image-20250401104522758.png) ![image-20250401104552329](imgs/image-20250401104552329.png) ### 忽略文件 ```init # 此处枚举 所有需要忽略的文件或者文件夹 .idea *.class target .iml #下面的内容是 IDEA 创建项目的时候 勾选了 仓库 会在仓库中 默认生成的 一个忽略文件 boot-01-helloworld/HELP.md target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ !**/src/test/**/target/ target *.class .idea ### STS ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr ### NetBeans ### /nbproject/private/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ build/ !**/src/main/**/build/ !**/src/test/**/build/ ### VS Code ### .vscode/ ``` IDEA 提示 当创建新文件 怎么处理的策略 Views Files Always add √ Dont ask ![image-20250401104834038](imgs/image-20250401104834038.png) ### 提交代码 提交之前,为了提高速度,去掉了代码检查、TODO分析 ![image-20250401105344312](imgs/image-20250401105344312.png) 提交 ![image-20250401105508383](imgs/image-20250401105508383.png) ## 使用git 推送到远端仓库 创建远端仓库(省略) push的步骤 ![image-20250401105728759](imgs/image-20250401105728759.png) 定义远端仓库 ![image-20250401105800958](imgs/image-20250401105800958.png) ![image-20250401105842145](imgs/image-20250401105842145.png) ![image-20250401105852132](imgs/image-20250401105852132.png) ## 拉取代码 ![image-20250401111849054](imgs/image-20250401111849054.png) ![image-20250401111919218](imgs/image-20250401111919218.png) ![image-20250401111953180](imgs/image-20250401111953180.png) ## 查看日志(历史记录) ![image-20250401112045822](imgs/image-20250401112045822.png) 可以查看到 修改的轨迹 ![image-20250401112139325](imgs/image-20250401112139325.png) ## 对比改动的内容 通过 shot diff 可以查看修改的内容 ![image-20250401112201443](imgs/image-20250401112201443.png) ![image-20250401112312724](imgs/image-20250401112312724.png) ## 克隆 组员使用idea clone 项目 ![image-20250401112520225](imgs/image-20250401112520225.png) ![image-20250401112543323](imgs/image-20250401112543323.png) ![image-20250401112629974](imgs/image-20250401112629974.png) ## 冲突的问题 - 演示提交和拉取 - 一个账号,修改 同样位置的代码 commit push - 另外一个账号 修改同样位置的代码, commit pull 当第二个账号拉取的时候 出现了冲突 ![image-20250401113233291](imgs/image-20250401113233291.png) ![image-20250401113332599](imgs/image-20250401113332599.png) ![image-20250401113420296](imgs/image-20250401113420296.png) ![image-20250401113458721](imgs/image-20250401113458721.png) 标记为已解决 ![image-20250401113553062](imgs/image-20250401113553062.png) 如果采用服务端的代码,没有后续操作, 如果采用本地(你自己的)可能还需要 commit push