海哥 发表于 2024-8-18 09:59:55

Git版本管理

1.概述

1.1 现实场景

场景:备份、代码还原、协同开发、追溯代码与时间
1.2 版本控制器

SVN: 会合式
https://i-blog.csdnimg.cn/blog_migrate/f6417dd177a1248e109e372ab9d95e33.png
Git:分布式
https://i-blog.csdnimg.cn/blog_migrate/05601f4c9a628b918ce55fd2156ef8ad.png
1.3 git流程图

https://i-blog.csdnimg.cn/blog_migrate/fefa331543ff70c547934528f7f041eb.png
1.4 用户名和暗码

https://i-blog.csdnimg.cn/blog_migrate/b97e6c3a0142e244e29ba16e533c78c4.png
https://i-blog.csdnimg.cn/blog_migrate/9ee5776e8716fa04900c4bda3f11fa35.png
1.5 创建当地堆栈

https://i-blog.csdnimg.cn/blog_migrate/5fc861ea5b0ff60992793cf705a06b27.png
2.操作

2.1 基础操作指令

https://i-blog.csdnimg.cn/blog_migrate/02e16aed9d72c513d92558e35b4376c9.png
以下是现实操作:
https://i-blog.csdnimg.cn/blog_migrate/3c21aac4145f25a5fd5251fcaeb9c5bd.png
https://i-blog.csdnimg.cn/blog_migrate/947460b738f9d88d68cf7cdf99558785.png
https://i-blog.csdnimg.cn/blog_migrate/2b55b8ff6b1277bbccda8dda9ce438e8.png
https://i-blog.csdnimg.cn/blog_migrate/62db19edc50fbd024095a2f733172600.png
https://i-blog.csdnimg.cn/blog_migrate/20a8c7d24d456219ffacab07a1e6a23b.png
无论是添加还是修改,文件会首先在暂存区,只有经过commit之后,才会进入堆栈。
2.2 检察提交日志

2.2.1 设置指令别名

在电脑的C:\Users\wy目次下创建.bashrc文件,并在文件中输入以下内容:
#用于输出git提交日志
alias git-log="git log --pretty=oneline --all --graph --abbrev-commit"
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
2.2.2 检察提交日志

https://i-blog.csdnimg.cn/blog_migrate/3e3fa1f2eeddf04ab4631028031c86da.png
直接使用上面的别名:
git log
https://i-blog.csdnimg.cn/blog_migrate/43fbaef81f20c9037d6bfa995d1242a1.png
git-log
https://i-blog.csdnimg.cn/blog_migrate/09aec8d7443e96d1cd9dd161cc9830b7.png
2.3 版本回退

https://i-blog.csdnimg.cn/blog_migrate/14ba7f3545c36c9ee7bbba3620b391d8.png
https://i-blog.csdnimg.cn/blog_migrate/64b585577b4a441668540fe9e0f72611.png
2.4 指定不提交的文件

通过场景.gitignore文件,选择不会提交的文件
https://i-blog.csdnimg.cn/blog_migrate/1739e77ddb30e3966303c23b51757548.png
https://i-blog.csdnimg.cn/blog_migrate/22c9dad68bd8c4935bdc2556ac1d1373.png
https://i-blog.csdnimg.cn/blog_migrate/66ab45c2222ed75731ff9b316ad0f040.png
3. 分支

https://i-blog.csdnimg.cn/blog_migrate/948d56e6330cd66a262019a6e4845690.png
3.1 创建分支、选择分支

https://i-blog.csdnimg.cn/blog_migrate/9e02fa6342f1ef0397de94e0b54a5d02.png
https://i-blog.csdnimg.cn/blog_migrate/2a8587cc56ad1d45871cc9f1ab97c5a1.png
合并分支:
https://i-blog.csdnimg.cn/blog_migrate/1b556b9a9236e245cb49cb13a2dbf166.png
删除分支:
git branch -d b1
git branch -D b1
3.2 合并分支-版本冲突

创建独立分支
https://i-blog.csdnimg.cn/blog_migrate/e63228ef2e75e390406e196d2ed723f7.png
切换分支:
https://i-blog.csdnimg.cn/blog_migrate/7cac8cdd94edcc8548bcd8dacf1f9b87.png
https://i-blog.csdnimg.cn/blog_migrate/343ce7ddc97377c78e760210e3966ff1.png
然后在master分支同样修改r1.txt文件,并提交。
https://i-blog.csdnimg.cn/blog_migrate/90accae33713f482cf5acdf410bd50bb.png
将dev分支合并到master分支,出现版本冲突:
https://i-blog.csdnimg.cn/blog_migrate/8047695de484d25b9aae6a02f26fe1d5.png
修改合并文件,最终再次提交:
https://i-blog.csdnimg.cn/blog_migrate/22fa788d01fe2254091b27dad3f95507.png
3.3 开发中分支

https://i-blog.csdnimg.cn/blog_migrate/9dfe8cb3d30476cabd84e1fada3f4b97.png
https://i-blog.csdnimg.cn/blog_migrate/db22fe5346c476ebeacd928c6b5a06c0.png
3.4 总结

https://i-blog.csdnimg.cn/blog_migrate/a58df52ff6d32aa923cc6b93469d3664.png
4.Git远程堆栈

常用的托管服务:github、gitee、gitlab
设置远程堆栈的SSH访问密钥:按照git官网获取
https://i-blog.csdnimg.cn/blog_migrate/c79b3d68b2b11906003ff20892fb9663.png这里需要在gitee的SSH密钥中配置上述获取的连接密钥,连接才能乐成。
https://i-blog.csdnimg.cn/blog_migrate/cbf811e1ae5976e6b5e8e598ac215618.png
4.1基础操作

(1)检察远程堆栈
git remote
(2)推送到远程堆栈
git push [-f][--set-upstream]
[-f]:强制覆盖
[--set-upstream]:推送到远端的同时并建立起和远端分支的关联
git push origin master
https://i-blog.csdnimg.cn/blog_migrate/7381b09777e0acfcaa610a230bb4a131.png(3)克隆
git clone 远程仓库地址
(4)从远程堆栈拉取和抓取
git fetch:仅仅只抓取到本地,不会进行合并

git pull:抓取到本地并且合并

(5)合并冲突以及解决
开启的第一个窗口(用户):
https://i-blog.csdnimg.cn/blog_migrate/baa8ef1071af350e7f4e9fbbb9633571.png开启的第二个窗口(用户):
https://i-blog.csdnimg.cn/blog_migrate/348530d2827cb86d5e0b24bab23c514e.png然后和上述一样,推送到远程堆栈
https://i-blog.csdnimg.cn/blog_migrate/83f67961ea995d200c5fe91f8defb57e.png
冲突解决:
https://i-blog.csdnimg.cn/blog_migrate/d201933a0b7fa98b3ff7e152729fd620.png
先根据冲突提升,找到file02.txt文件
https://i-blog.csdnimg.cn/blog_migrate/ead83d31c4b47aa31b85522f27c76259.pnghttps://i-blog.csdnimg.cn/blog_migrate/bee00770f3fc6ce9f2e6b56005db1487.png最后需要在另一个窗口拉取最新的修改的文件,这样这两个窗口的内容就能保持同等。
https://i-blog.csdnimg.cn/blog_migrate/36771d178239f5345442750b5844e34b.png
https://i-blog.csdnimg.cn/blog_migrate/649c923dba4fc20eccedc05b1138e5fa.png
5.在Idea中使用Git

5.1 Idea集成Git

一样寻常假如电脑中装有git可实行文件,那么idea的setting配置中的git利用会自动获取其地址
同时,需要将Idea与远程堆栈绑定
https://i-blog.csdnimg.cn/blog_migrate/c512ae5594c5513f24eeee4e6d638f51.png绑定当地堆栈:
https://i-blog.csdnimg.cn/blog_migrate/72a24b708d130d0125fc4294c7db450f.png提交的时候会提示定义远程堆栈地址:
https://i-blog.csdnimg.cn/blog_migrate/4a95aa37d7220f73d8ee32d5e51a0c85.png
5.2 引入.gitignore

# Compiled class file
*.class

# Eclipse
.project
.classpath
.settings/

# Intellij
*.ipr
*.iml
*.iws
.idea/

# Maven
target/

# Gradle
build
.gradle

# Log file
*.log
log/

# out
**/out/

# Mac
.DS_Store

# others
*.jar
*.war
*.zip
*.tar
*.tar.gz
*.pid
*.orig
temp/


屏蔽掉那些不需要上传到远程堆栈的文件
5.3 代码提交

https://i-blog.csdnimg.cn/blog_migrate/f3eafa7bb8149f397ed5173f15ce0045.png提交的过程中,可以先提交到当地堆栈,然后在push到远程堆栈
5.4 代码合并冲突

当两个开发者同时对一份代码中的类进行修改时,就会出现提交冲突。
这个时候,一样寻常的操作应该是,先拉取远程堆栈的代码,然后看是否有冲突,假如有冲突,就解决冲突,假如没有冲突,就直接push即可。
关键:先拉取分支中的最新代码,然后在push自己的代码到远程堆栈
https://i-blog.csdnimg.cn/blog_migrate/4efd44133a9205bcb8c88a247ab27683.png
6.常见问题

6.1 window下无法检察.bashrc和 .gitignore文件

https://i-blog.csdnimg.cn/blog_migrate/2e4906ba97f7ce5cbebf867ab5a15da7.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Git版本管理