Git学习
Git
1 Git该怎么理解
Git官方名称:分布式版本控制工具。
版本控制:保存文件或代码每次内容的修改后的版本。
2 Git有什么好处
通俗理解:
未使用Git之前,写word文档,每次修改前都要手动创建一个副本,然后在这个副本上进行修改。
使用Git后,你只要自动提交修改后的代码或者文件,Git自动帮你进行记录,而且他不是像原来一样创建副本帮你记录,而是通过对象复用机制来只保存修改的内容,其他内容通过复用旧版本的内容来合并,并按修改时间保存到Git库里面,不占用你电脑的内存,而且可以查看每次修改的具体内容。
3 Git的存储机制
Git相比较于自己手动创建副本最大的好处就在于他的不会像手动创建副本一样,重复的内容占用大量空间,Git只保存修改的部分,然后通过共享其他已有的部分实现新文件向用户的展示。
从用户角度看:我修改后提交的新文件是一个新的副本,里面有修改的内容和未修改的内容。
从Git角度看:我只存储了你用户修改的部分内容,其他部分我是从上次提交的文件里面引用过来的,共享使用的,没有创建新空间去存储重复内容,通过共享的方式去引用同一个Git库里面的重复内容,向用户展示新提交记录,内部文件之间是可以共享的。
4 集中式和分布式版本控制
我就按我的理解简单那记录
集中式版本控制:每个员工的代码修改后都保存在公司的服务器里面,一旦公司服务器故障,员工就无法从公司服务器下载最新的版本进行修改和提交。
分布式版本控制:版本保存在每个员工的电脑里面,即使远程库故障,依旧可以在自己的电脑里面进行版本修改并出现提交记录,只不过不能推送到远程库罢了。这就是Git的好处。本地电脑就可以进行版本控制。
重点理解下集中和分布的意思:
集中就是:版本库放在一个服务器里面。
分布就是:版本库复制后分散放在每一个使用的人的电脑里面。而Git就是实现版本库在本地可以进行版本控制的工具。
5 Git常用命令
-
git --version 查看版本信息
-
git config --global user.name yzh 设置用户签名
-
git config --global user.email 2748336259@qq.com 设置邮箱
C:\Users\lenovo.gitconfig 查看已经设置的用户签名
直接在项目目录里面右击进入bash客户端 -
git init 初始化本地库
git status 查看本地库信息
vim 文件名 创建并编辑文件名
vim里面
- a开始插入 ,esc退出, 输入冒号在输入wq保存并退出
- yy复制,p粘贴到下一行
-
cat hello.txt 查看文件内容
-
tail -n 1 hello.txt 查看文件最后一行内容
-
git add hello.txt 添加文件到暂存区
-
git rm - -cached hello.txt 删除暂存区中的文件
-
git commit -m "my first commit to localproperty" hello.txt 将暂存区文件提交到本地库
-
git reflog 精简版提交信息日志
-
git log 丰富版提交信息日志
-
git reset - - hard 版本号 指定要查看的历史版本
-
linux中查看隐藏文件 ll -a
-
git add .
-
查看最新提交的数据:要查看最新提交中
README.md
文件的内容,可执行git show HEAD:README.md
。
6 Git本地库在哪?
Git本地库就是你初始化后的.git隐藏文件夹。这个文件夹里面存储的就是提交的文件内容,只不过存储文件的方式是以对象的方式存储,在.git/objects/目录中。
7 Git分支操作
1.创建分支
2.切换分支
3.修改内容
4.添加到分支暂存区和提交到本地库
5.切换到主分支
6.合并
开发中,一个master主分支,一个dev分支,
dev里面随便写,然后切换回master分治后,代码文件又变回来了。
1.git branch -v 查看当前的分支数
2.git branch 分支名 -创建分支
3.git checkout branch2 -切换分支
4.git merge 分支名 合并分支(merge后面的分支是要合并的分支,合并到当前所在分支下)
- 正常合并,master主分支没有修改,在branch2分支上修改后进行合并,没有代码冲突,属于正常合并
- 主分支和其他分支在哪一块不一样进行了修改,合并时会出现冲突,需要自己手动选择合并,人为修改冲突的文件后重新添加暂存区,提交本地库,这时候提交本地库不要带文件后缀名。
- 不过我下载的版本自动合并不会报冲突提示了。
8 Git流程
8.0 git命令行提交,拉取,克隆
参考文章:
1.用IDEA和命令行上传项目到gitee (简单的使用Idea插件gitee将代码上传至git) - 编程库
2.参考文章:gitee创建新仓库并上传代码_gitee新建仓库导入代码-CSDN博客
代码编辑区->暂存区->本地库->远程库
本地库推送到gitee步骤及指令(提交远程库)
-
- git init 初始化本地库 - git add 文件名 添加到暂存区 - git commit -m 提交描述 - 获取远程库的链接和别名 - git remote add 取得连接 - git push 推送到远程库
- git remote -v 查看远程库链接和别名
- git remote add 别名 远程库链接 给远程库链接创建别名,推送或者拉取的时候可以用别名代替链接。
- git push 别名 本地的分支 推送本地分支到远程库
- 弹出提示框,让你登录远程库的用户名和密码
- gitee用户名:yzh15503996697
- gitee密码:Yin2040411
远程库拉取到本地库(更新本地库)
参考:
拉取是在已经推送到远程库之后,在远程库修改后,拉取到本地库。
1.git remote -v 查看远程库链接和别名
2.git pull 别名/链接 分支名 拉取远程库项目到本地库
从远程库克隆到新的本地仓库(克隆远程库项目)
- git clone 远程库链接
- 帮你拉取代码
- 帮你初始化本地库
- 帮你取远程库链接别名
8.1 idea集成Git
这是在idea里面集成Git后不用自己在写好的代码里面创建本地库,输入命令提交到本地库了,直接在idea里面提交本地库
1.添加配置忽略文件
2.idea中找到git安装目录的bin目录的.exe程序。
3.测试,出现版本,成功添加。
4.集成git后,可以不用gitee插件的情况下,提交到gitee。
8.2 idea集成GitHub
这是idea里面集成GitHub插件,直接在idea里面提交的本地库后,推送到远程库,不用自己在git bash里面推送
8.3 idea集成Gitee
这是idea里面集成Gitee插件,直接在idea里面提交的本地库后,推送到远程库,不用自己在git bash里面推送,前提是先在idea里面配置GIt才行,要不然只能共享一个空的库,没有代码。
使用gitee推送后自动在项目的目录中创建本地库.git,不需要自己再创建本地库了。如果创建过后,需要再该目录下删除本地库,然后进到idea里面选择version Control->Directory Mappings,去掉之前映射的项目目录。才可以直接用码云生成项目。
作者:yzh先生
博客:https://www.cnblogs.com/ZiJun
本文版权归作者和博客园共有,转载请在文章中注明原文链接:https://www.cnblogs.com/ZiJun/p/18852491 ,愿尊重劳动成果,谢谢!
若有关于博客内容的各种问题,欢迎在评论区讨论或发消息,让我们一起进步!