Git简单使用
1、初步理解
集中式版本管理:svn
分布式版本控制工具:git
git一般流程
2、Git安装
安装 git 2.17.1.exe,一路下一步
安装后如果右键出现了git bash here的选项证明安装成功
配置自己的用户信息到git
在任意的位置打开git bash here
git config --global user.name 'silhouette1'
git config --global user.email 'lyr0511gz@163.com'
3、Gitbash(重要)
管理项目的版本
1、git init : 在工作区初始化git本地仓库
在项目的根目录下执行命令
git目录就是git本地仓库用来管理项目的版本的目录
在项目中新创建文件
2、git status: 查看版本仓库中的文件的状态
3、 git add 文件名: 将修改的文件[增删改]添加到暂存区等待提交
4、git commit -m ‘提交备注’ : 将暂存区内的修改提交到本地仓库管理
5、查看提交记录
git log 文件名:查看详细的提交记录
git log --pretty=oneline a.txt :查看文件的简要的提交记录
git reflog a.txt :查看文件的提交id(以后可以根据此id进行文件还原)
6、比较文件
如果文件提交后没有做任何修改,没有差异
文件提交后又做了修改:git diff :可以查看到工作区修改过的文件和本地仓库文件的差异
如果文件提交后做了修改提交到暂存区,然后又对工作区的文件做了修改
git diff :用工作区的文件和暂存区的文件进行对比
总是本地工作区和其他的比较
7、还原修改
如果文件提交后又做了修改:
git checkout – 文件名
放弃本次修改
如果文件提交后做了修改提交到暂存区,然后又做了修改:
- 还原到暂存区:git checkout – 文件名
- 还原到本地仓库:git reset --hard HEAD
HEAD表示仓库中的最新的版本
如果文件修改后已提交到本地仓库:
指定版本进行还原:
先查询所有的版本号(提交id): git reflog
使用HEAD进行版本切换(不推荐使用):
根据提交id进行版本的切换: git reset --hard commitid
8、删除版本控制的文件:
删除文件并提交本次删除操作到本地仓库
rm a.txt
git add a.txt
git commit -m ‘备注’
所有的被版本仓库管理的文件就算删除了也能还原
4、tortoisegit客户端(了解)
idea和eclipse中也可以使用git的插件客户端、gitbash也是git的客户端
客户端:可以发送git命令让git服务端执行
tortoisegit需要先安装再使用:
1、如果需要创建git本次仓库,必须保证当前路径下没有.git目录
2、小乌龟提交删除修改文件提交到本地仓库
删除文件:
版本还原:
提交工作空间的项目到本地仓库进行版本控制:
maven项目只有src和pom.xml才需要进行版本控制
1、在项目的根目录下创建本地仓库
2、git提交文件到仓库时可以设置忽略文件
git会自动忽略不用提交的文件
可手动,也可以自己该.gitignore文件(忽略文件的语法自己了解)
3、提交项目到本地仓库:
5、github+gitee简介+创建远程仓库
以后的开发都是团队开发,多个人同时开发一个项目。可以将项目放到远程的仓库中托管
github:
gitee:码云,是开源中国的一个远程的代码托管的服务器
1、新建码云的远程仓库
2、查看gitee的远程仓库如何使用:
如何将本地仓库推送到远程仓库
6、配置gitee-ssh密钥
本地如果需要连接远端仓库,必须要验证身份[账号密码验证HTTPS、配置秘钥方式验证SSH公钥私钥]
1、先生成公钥私钥:
git中自带了生成公钥私钥的工具D:\myprogram\Git\usr\bin\ssh-keygen.exe
ssh-keygen -t rsa -C 邮箱地址
查看生成的秘钥文件
2、将生成的公钥配置到gitee 账号中:
3、参考gitee仓库的介绍将小乌龟客户端提交的项目的本地仓库推送到gitee的远程仓库中
在项目的根目录下打开git bash
git remote add origin git@gitee.com:xgatguigu/atcrowdfunding-main.git
git push -u origin master
4、查看gitee中的远程仓库:
7、gitbash clone远端仓库的项目到本地
以后的工作流程:
1、项目经理初始化搭建项目后在创建本地仓库
将项目提交到本地仓库
再推送到远端仓库中
2、程序员刚进公司,根据项目经理分配的账号密码和远程仓库的地址
将远程项目Clone到本地
形成本地仓库,并检出仓库中的代码到本地工作区
3、程序员再工作区中进行开发
再将自己的更新提交到本地仓库
然后再推送到远端仓库中
4、如果其他的同事已经更新了远程仓库的代码
我们也可以去拉取远程仓库他们提交的更新
5、在项目的更新过程中或出现多用户协作冲突[多个程序员修改了相同的文件]
解决协作冲突
远程仓库如果是共有的,所有人都可以clone下载查看代码,但是提交更新时需要验证权限
克隆:git clone 远程仓库的地址
8、gitee多用户协作
用户clone项目以后可以修改代码并提交到本地仓库然后推送到远端
git add 修改后的文件 :添加修改的文件到暂存区
git commit -m ‘备注’ :提交暂存区内容到本地仓库
git push origin master :默认使用SSH方式将本地仓库的更新推送到gitee远程仓库
其他人获取更新:
git pull origin master : 拉取远程仓库最新的版本到本地
我们以上的操作都是基于SSH进行的身份验证。不用输入账号密码
测试不了多用户的身份:HTTPS每次都需要输入账号密码,可以模拟多用户
使用HTTPS的方式推送:
使用HTTPS其他的账号推送更新:
由于win10系统有缓存,必须先删除缓存
如果其他的账号没有推送的权限的话,推送时会报错
1 gitee仓库添加合作伙伴
为了让多个人可以同时更新仓库内容
被邀请的用户需要登录自己的码云,确认接收邀请:邀请和被邀请的用户不能使用同一个浏览器
接收邀请的用户和邀请的用户都可以更新同一个仓库
2 协作冲突解决
同一个仓库多个程序员都可以更新,如果多个程序员更新了同一个文件,就是协作冲突
A和B本地仓库的版本和远程仓库一样时,A和B同时修改了项目,任何一个程序员先推送时,会导致远程仓库的版本更新,另外一个再推送时,本地仓库的版本和远程仓库的版本不一致会导致协作冲突
解决三板斧:
先拉取远程仓库最新的版本到本地
然后将本地的更新和远程仓库的内容合并[如果本地某个文件做了修改,仓库最新的版本中该文件也被修改了,就出现文件冲突,也需要解决]
最后再提交推送
3 fork
如果我们希望研究其他的比较出名的开源的项目(在gitee中是公共的,任何人都可以读取下载),但是我们没有权限推送我们的更新到开源项目。
我们可以先下载远端仓库中的开源项目到本地,然后在推送到自己的远端仓库中(如果开源项目版本升级,不太方便将我们自己的更新的代码和开源项目的代码新版本进行合并)
fork:
可以在我们的远端仓库中去fork其他的开源项目的远端仓库,如果开源项目的远程仓库更新了,我们fork的仓库也可以拉取开源项目的仓库的最新的更新。
9、分支管理
用户在开发项目时,有事希望当前开发的代码不会被另外一部分开发的代码影响,可以使用多个分支进行开发
分支之间的代码互不影响
分支查询
git branch -v
分支创建
git branch 分支名称(dev/test/debug)
git branch -b 分支名称 :创建并切换到新建的分支中
分支切换
git checkout 分支名称
分支创建时会依赖于创建分支时的那个分支的版本来创建
每个分支都会基于自己所在的版本继续向后开发,和其他分支互不影响
分支合并
开发时分支可能开发的功能不同,功能完成后可以通过分支合并的方式将其他分支的代码合并到当前分支中
只有master分支才可以合并其他分支
先切换到master分支:git checkout master
在合并其他的分支:git merge 分支名
合并时如果两个分支修改了相同的文件会出现冲突:手动修改冲突文件并添加到暂存区提交到本地仓库:git add 文件名 git commin -m ‘xxx’
分支删除
删除已经使用完毕的分支: git branch -D 分支名
10、git-idea git客户端
先在idea中配置git
使用idea的git客户端
1、项目经理的使用步骤
1 新创建项目
2 初始化本地仓库
创建忽略文件:将不必要提交的文件忽略掉
安装创建忽略文件的插件:
创建忽略文件
自己把.gitignore加进去
3 将新创建的项目提交到本地仓库
在gitee中创建远程仓库:
4 将项目推送到远端仓库
上面的推送使用的是SSH的方式推送的,由于之前的练习已经配置过SSH的公钥到gitee的账号中了,本地也存在对应的私钥,所以可以直接通过ssh地址推送到远端
idea中gitee账号密码的设置:以后通过HTTPS的方式推送时不用在输入账号密码
在idea中安装gitee插件:
如果在idea里面网不好,在线无法安装,则自己单独下载好插件后,进行本地安装。
选择自己的idea的版本下载对应的gitee的插件:
https://plugins.jetbrains.com/plugin/11491-gitee/versions
2、程序员的使用步骤
1 克隆远程仓库到本地:
2 将克隆到本地的项目转为对应类型的项目[Maven]
项目在新的工作空间打开自动识别为Maven工程:
3 修改项目并提交更新到本地仓库:
4 推送自己的更新到远程仓库[可能会有冲突]
1、先拉取远程仓库最新版本到本地
2、在本地通过merge合并冲突
3、再将合并冲突的文件提交到本地仓库,最后再次推送
2.3 版本控制[版本查看+跳转]
查看历史版本:
版本跳转:
分支:
创建分支:
分支切换:
分支合并:(首先要切换到master分支)