git是一款软件,管理代码版本,可以将本地代码上传到远程仓库。
下载地址:https://git-scm.com/
下载好后,直接傻瓜式安装,一直点下一步,切记这里不需要更改安装路径,因为更改路径后,可能导致git工具无法使用。
安装成功的标志:鼠标右键 有git快捷方式,打开查看版本号:git --version,若出现版本号就代表安装成功了。如下所示:
第一步、单击鼠标右键,显示如下快捷方式。
第二步 点击 Git Bash Here,进入git,输入命令:git --version查看版本
1、git命令窗口是对cmd命令窗口的一个升级封装,它比cmd更加的强大。
2、git就是一个远程仓库,我们就来认识一下远程仓库,有GitHub 和 Gitee。
Github:全球所有程序员都用的一个网站,可以托管项目代码,方便协助开发。
Gitee:又叫 码云,国内的一个代码托管网站,模仿github做的一个网站。
3、在远程网站,新建一个仓库,用来存放项目代码;注意:一个仓库只能存放一个项目代码。将本地代码上传到远程仓库,有两种协议:https协议 ssh协议。
git工具实现的就是将本地项目代码,提交到Gitee码云上,也就是远程仓库。
工作区:
本地仓库:
远程仓库:
也就是,我们要利用git工具将工作区的代码,上传到远程仓库。接下来我们就利用git工具一步一步的实现。
第一步,进入网站注册账号
第二步 点击+ 创建仓库
第三步 设置仓库名字、仓库介绍,路径会自动生成,点击创建
第四步 htpps协议 SSH协议 任意选一个即可,不做强制要求,它们都有对应的远程仓库地址https协议地址或ssh协议地址,随着我们的不同选择,网页也会自动变换对应的地址
做完以上四步,快捷方式进入git命令窗口,进行git全局配置
git config --global user.name "王昭没有君啊" git config --global user.email "[email protected]"
一行代表上传者的名字,一行代表上传者的邮箱,作用方便查看谁提交的代码,谁的代码出现问题,可以及时联系到该程序员,责任到人。
注意:一台电脑上,配置一次就可以,多次操作就是覆盖,这样就没意义了,我们也没必要这样做,只需要配置一次即可。如下所示:
执行命令:git init
找到你电脑上的新建项目,在新建项目的项目根目录下,执行 git init 命令,这样就在本地创建了一个新的仓库,这个仓库就是本地仓库,仓库代码就是你的项目代码。
执行该命令后,就会在当前项目目录下,生成一个.git隐藏目录,该目录包含你每次提交的版本记录,相当于一个记事本功能,但是该文件不能动,也就是不能删除,不能修改,可以把它当作空气。
如果执行命令后,没看到.git文件夹,可进行如下设置,就可以看到了.
git status 查看当前本地仓库下的代码文件状态 ,提交的一个状态
第七步:创建git仓库:
git add 文件名 单独添加到暂存区
git add . 将工作区的文件全部添加到暂存区
git commit -m "当前操作的描述",将暂存区的文件添加到了本地仓库
git remote add origin 远程仓库地址https协议地址或ssh协议地址 ,将本地仓库和远程仓库做关联
git push origin 远程分支名 ,将本地仓库代码推送到码云远程仓库
注意:如果远程仓库没有对应的这个远程分支,它会新建该分支,如果有的话,就不新建该分支了
执行如下命令:
第八步:回到gitee码云里,点击刷新
第九步:可以看到我们成功创建了一个git仓库,点击对应的文件,可以查看提交的代码。
总结,这样我们就基本实现我们利用git工具将工作区的代码,上传到远程仓库。
补充:
在实际项目中,master是产品最后上线才上传的,在平时工作中,我们都是在分支上进行我们的工作的。
git merge 分支名 ,将对应的分支代码合并到当前所在的分支,一般都是master分支合并某一个分支。
我这里只是一个演示,要是在实际工作中,千万不能直接上传到master里。
实际项目中,不只有将本地代码上传到远程仓库,这只是一个git最基本的操作,我们还需要掌握其他的操作。
已有git仓库:
git branch 分支名 ,在本地仓库创建一个新的分支
git checkout 分支名 ,本地代码切换到当前对应的分支
git branch -a ,查看当前所有分支,包含本地和远程分支(红色)
git merge 分支名 ,将对应的分支代码合并到当前所在的分支,一般都是master分支合并某一个分支
进入本地仓库,右击鼠标,通过快捷方式进入git命令窗口,执行命令创建一个分支,并将本地代码切换到当前对应的分支
将本地代码切换至当前对应的分支,还需要在向远程仓库提交一遍,但是不需要通过git remote add origin 远程仓库地址https协议地址或ssh协议地址 ,将本地仓库和远程仓库做关联,在创建仓库时,我们已经将本地仓库和远程仓库做了关联,直接将本地仓库代码推送到码云远程仓库即可。
返回Gitee网页点击刷新
可以看到此时有两条分支,master、dev,点击dev进入该分支
也是点击对应的文件,可以看到提交代码,同时通过近期动态可以实时看到我们都进行了哪些操作,记录我们的工作,还是责任到人,绝不可能逃拖。
实际工作中每天要做的两件事:
1、每天上班做到,先从远程仓库拉取代码 git pull origin 远程分支
2、每天下班后,将本地仓库代码推到远程分支, git push origin 远程分支
冲突的原因就是:由于你和你的同时修改了同一个文件,所以git无法判断哪些文件该保留,哪些该删除。
情景:
A将今天的工作完成的功能代码上传到远程分支,B也将今天的工作完成的功能代码上传到远程分支,第二天上班,A先从远程仓库拉取代码,这样就保持了进度的统一,这也是我们工作每天必做的,而B今天忘记了从远程仓库拉取代码,直接在昨天的代码基础上开发今天的功能,然后到了工作结束,上传今天完成的功能代码,发现无法上传今天的代码,他才想起来没从远程仓库拉代码,接着就拉代码,这时候就会发生代码冲突。所以在平时工作中,我们一定要养成良好的工作习惯。
分析:因为昨天两人都上传了代码,B今天上班没有拉取代码,直接在昨天的代码基础上开发今天的功能,上传的时候,远程仓库有A、B昨天上传的代码,而B今天的代码里没有昨天A的代码。我们本地仓库的代码功能一定会大于远程仓库的,而现在B的代码功能少了昨天A的代码功能,这样就会使得本地仓库的代码功能没有大于远程仓库的,就会导致上传代码失败。
接下来我们就来模拟一下,这个场景,看看该怎么解决代码冲突。
昨天A上交了写的购物车功能代码,B上交了写的登录注册功能。我们直接看结果:
点击查看index.html
A今天来了先从远程仓库拉取了代码,保持了进度统一。
B忘记了拉取代码,直接在在昨天的基础上开发:
下班前,B就要把代码推到远程仓库中,就会报错,无法推送到远程仓库,这时候他才想起来忘记拉代码了,然后拉取代码,然后就会发生代码冲突。
解决代码冲突:手动解决,把那些等号、箭头还有后面的都删掉,只保留功能代码,然后重新上传即可。
情景: 公司上线了产品,发现有bug,而现在又需要保持产品能够正常运行,这时候就需要将版本回退,先让修版本运行着,等新版本bug修复好,再重新上线新版本。
1、查看所有提交的版本:git log 或者 git log --pretty=oneline
2、回退到指定版本:git reset --hard 提交的id
3、将旧版本代码强制推送到远程仓库:git push origin master -f
4、切回到dev分支将bug修改完,重新提交 ,最后重新合并到master 分支,然后推送到远程master分支,这样就ok啦
情景:有一天A跳槽到某公司,而这个公司的项目刚做到一半,项目经理就和A说,小伙子我给你个地址,你接着在那个地址上面开发吧,你看行不行。
针对这个场景我们就需要克隆代码。
克隆代码就是将远程代码克隆一份到本地,注意克隆到本地后,本地会自动有.git文件,也就是说本地自动生成仓库了,不再需要执行 git init初始化本地仓库。
在本地创建一个该项目文件夹,在文件夹里,右击鼠标,进入git命令窗口,执行克隆代码命令: git clone 远程仓库地址url
一般点击克隆/下载,就可以查看克隆地址了
点击复制,复制克隆地址
当然,实际工作中,这个地址是项目经理给你的,他进行的就是这个套路。