零基础最好学的软件编程有哪些业
程序人生

git的基本使用

  安装分为两种,一种是通过编译源代码来安装;另一种是使用为特定平台预编译好的安装包。

  打开浏览器输入Git官网网站回车即可打开Git官网; 点击里面的“Downloads

  Windows”即调整到下载页面等待下载即可,现在最新版本为2.16.2

  bit.exe。 双击既打开安装设置界面。然后点击“Next”; 配置安装组件,默认即可,点击“Next”;默认已经都帮我们否选上了。包括创建桌面快捷方式、Git Bash、Git GUi、已经目录和后缀关联等; 在“Adjusting your PATH environment”选项中,默认即可。点击“Next”; (这个步骤最好选择第二项“Use Git

  the Windows Command Prompt”, 这样在Windows的命令行cmd中也可以运行git命令了。这样会对以后的一些操作带来方便); 配置行结束标记,保持默认“Checkout Windows

  style line endings”; 在终端模拟器选择页面,默认即可; 配置Git额外选择默认即可; 安装完成,默认点”Finish”即可。 安装完成后,还需要最后一步设置,在命令行输入:

  Git:是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。Git 是根据GNU通用公共许可证版本2的条款分发的自由/免费软件,安装参见:

  Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合GitHub来使用。

  git init :初始化,当前所有的文件夹可以被管理并且以后版本相关的数据都会存储到.get文件中去

  git status : 查看当前文件夹以及子目录中文件是否发生变化,内容修改/新增文件/删除

  git add : 给发生变化的文件(贴上一个标签)或者将要发生变化的文件放到某个地方

  git checkout -- 文件名 :假如误删了文件,因为版本库里面还有了,这样就可以将误删的文件恢复到最新的版本

  用于将工作区发生变化的所有文件获取临时存储在“某个地方”,将工作区还原当前版本未操作前的状态;stash还可以将临时存储在“某个地方”的文件再次拿回到工作区。

  git stash pop :这一步有可能出现冲突,因为在紧急修复bug的代码和通过stash存储在“某个地方”的代码会有重合部分,所以执行 git stash pop 时候就会出现冲突,

  git stash 将当前工作区所有修改过的内容存储到“某个地方”,将工作区还原到当前版本未修改过的状态 git stash list 查看“某个地方”存储的所有记录 git stash clear 清空“某个地方” git stash pop 将第一个记录从“某个地方”重新拿到工作区(可能有冲突) git stash apply 编号, 将指定编号记录从“某个地方”重新拿到工作区(可能有冲突) git stash drop 编号,删除指定编号的记录

  branch称为分支,默认仅有一个名为master的分支。一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支。

  git merge 时也可能会出现冲突,解决冲突的方式上述stash相同,即:找到冲突文件,手动修改冲突并提交,此处不再敖述

  GitHub,一个基于Git实现的代码托管的平台,可以将内容以及版本记录在远程也保存一份,这样就不用U盘咯(类似于云盘)。PS: 类似GitHub的产品还有许多,如:GitLab、Bitbucket、码云等

  在公司,新电脑第一次使用,需要将代码从GitHub中获取并继续开发,开发完事下班就下班回家。

  在家里,由于白天在公司已经开发一部分功能并提交到GitHub,家里电脑的代码还是昨晚的版本,所以需要从GitHub拉去最新代码,然后继续开发。

  在公司,由于昨天晚上在家已经开发了一部分功能,在公司需要先把昨晚开发的功能从GitHub中拉取,并继续开发。

  长此以往,将Git和GitHub结合使用做到避免电脑损坏造成数据丢失以及多地开发的问题,上文执行过程中执行 【git pull origin 分支】命令等同于【git fetch origin 分支】+ 【git merge origin/分支】,并且在执行过程中可能会出现冲突,原因是由于本地代码和获取的最新代码有重合部分,那么就需要自己手动解决冲突然后再继续开发。

  创建一个组织,然后再该组织下可以创建多个项目,组内成员可以向组内所有项目提交代码。PS:也可以对某个项目指定合作者

  协同开发命令和以上步骤类似,此处就不再重新写代码,而是使用文件描述三人协同开发整个过程。

  创建程序 用户A创建程序,提交到GitHub 用户B克隆项目 用户C克隆项目 开发功能 用户A开发功能1 用户B开发功能2 用户C开发功能3 提交 用户A提交功能1,并push(A用户手速快,先提交。) 用户B提交功能2,无法push,因为GitHub上已经有其他人提交的新代码。 解决方法:从GitHub上获取最新代码并合并到本地,提交自己开发的功能2。 用户C提交功能3,无法push,无法提交,因为GitHub上已经有其他人提交的新代码。 解决方法:从GitHub上获取最新代码并合并到本地,提交自己开发的功能3。 获取最新代码 用户A获取最新代码 用户B获取最新代码 用户C获取最新代码

  在上面红色标注的解决方法位置可以有三种方式操作,三者都可以完成合并并提交新功能,但是日志记录会有差异,如:前两者版本记录中会出现合并,而第三种可以保证版本记录干净整洁。

  创建pull request:创建并提交一个pull request,然后等待原作者是否同意这个pull request,如果同意那么在作者的源代码中就推出现小P提交的功能