小白文 初识git-版本分支管理及远程仓库提交

为何使用git

有一个项目a,已经完成了基本的功能,测试下来是稳定的,接下来想增长新的功能,并用对其完善,但这个过程当中可能会出现bug,甚至影响到全局php

这个时候,咱们就但愿保存一个稳定版本的文件,另外复制一份文件进行改进,这样即使遇到问题也能够回到稳定的状态,并能够进行对比来进行dbug
在学习版本控制工具前,方法是复制文件夹,而后在新的文件夹中进行修改,可是明显这样会形成多余的文件夹,管理极为混乱linux

因此就须要咱们的版本分支管理工具git登场了git

安装

从官网下载对应的exe进行安装便可github

clipboard.png
只要这边改为第一个,保证安全性,其余就一路next就能够了windows

配置

$ git config --global user.name "name" //填名字
$ git config --global user.email 123@163.com //邮箱

初次提交

在项目文件夹中右键菜单,Git Bash here
或者在其余地方Git Bash here以后,命令行里输入cd 路径名转到项目文件夹中安全

$ git init  //初始化仓库

下一步就要把文件所有提交到仓库的暂存区工具

$ git add . //能够把.改为要提交的文件名来单独提交

不过在这以前,先要肯定哪些文件不要提交
经过IDE(不能直接在文件夹右键新建)(我用的vscode,在命令行输入$ Code .gitignore)新建一个.gitignore文件,在里面写要忽略的文件学习

//忽略规则
•    bin/: 忽略当前路径下的bin文件夹,该文件夹下的全部内容都会被忽略,不忽略 bin 文件
•    /bin: 忽略根目录下的bin文件
•    /*.c: 忽略 cat.c,不忽略 build/cat.c
•    debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
•    **/foo: 忽略/foo, a/foo, a/b/foo等
•    a/**/b: 忽略a/b, a/x/b, a/x/y/b等
•    !/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
•    *.log: 忽略全部 .log 文件
•    config.php: 忽略当前路径的 config.php 文件

而后要把暂存区的文件里提交到正式的仓库里测试

$ git commit -m '这里能够加提交的注释'

若是.gitignore文件没有在提交前创建,或者不当心提交了不想要提交的文件,那能够经过下面的命令行进行取消ui

$ git reset 文件名 取消暂存区的文件 
$ git rm -r --cached 文件名   移除正式仓库里的文件,加上--cached就不会把本地的文件删除

提交以后,或者未提交时,均可以经过这句来查看仓库目前的状态
是否有未跟踪的文件,或者暂存区里有尚为正式提交的文件,都会有所显示

$ git status

若是工做目录显示是干净的,也就完成了咱们的初次提交

On branch master
nothing to commit, working directory clean

在提交中,可能会遇到这样的问题

warning: LF will be replaced by CRLF

windows中的换行符为 CRLF, 而在linux下的换行符为LF
因此在执行add . 时出现提示
解决方法:

$ git config --global core.autocrlf false  //禁用自动转换

查看提交历史

$ git log
$ git log -a   //更详细

将稳定版提交到github

在github的我的主页中,新创建一个仓库
复制仓库页面的url
在Git Bash中执行

$ git clone url

这样就会在Git Bash所打开的地方,创建出一个新的文件夹,里面会有网上仓库的内容(若是在创建的时候有勾选Readme说明文件的话,就能够看到它)
而后把稳定版里的全部文件复制到这个新文件中
进行以前初次提交的操做

$ git add .
$ git commit -m ''

$ git commit -a -m '' //把上面两句简写到一块儿

而后进行仓库的远程提交

$ git push

输入帐号密码后,即把文件提交到了github上的仓库中

分支与合并

回到咱们最初问题上来
在保存了稳定版本到仓库后
咱们能够建立一个分支

$ git branch fen    //建立分支
$ git checkout fen  //切换到新的这个分支上

$ git checkout -b fen  //也能够两句合写

而后就能够对其中的文件进行修改
能够随时切换回主线,git会把文件都还原成稳定版的状态

$ git checkout master

文件修改

修改了文件内容以后
若是还没有提交暂存,想查看对比仓库里的文件的修改之处 :

$ git diff

若是已经提交到暂存,想查看对比仓库里的文件的修改之处 :

$ git diff –staged

若是此时又对文件内容作了修改
再使用下面这句

$ git diff

显示的就是文件和暂存区内文件的对比(不是仓库了)

查看文件的具体状态

$ git status -s
M     //已经提交到暂存的修改文件
 M    //尚为提交到暂存的修改文件
MM    //已经提交到暂存,并在暂存后继续修改的文件
A     //新提交到暂存的文件
??    //尚为跟踪的文件

分支合并

查看分支状况

$ git branch
* fen
  master

在修改完这个分支以后,测试为稳定,但愿将其合并到主线上,进行版本更新

$ git checkout master   //切换回主线
$ git merge fen         //把支线合并过来
$ git merge -d fen      //删除此分支

至此,就完成了一次工做流程


目前用到的都只是我的的版本管理,没有涉及多人协做
更具体的学习仍是要参照官方文档
https://git-scm.com/book/zh/v...

相关文章
相关标签/搜索