为什么使用git有一个项目a,已经完成了基本的功能,测试下来是稳定的,接下来想增加新的功能,并用对其完善,但这个过程中可能会出现bug,甚至影响到全局这个时候,我们就希望保存一个稳定版本的文件,另外复制一份文件进行改进,这样即便遇到问题也可以回到稳定的状态,并可以进行对比来进行dbug在学习版本控制工具前,方法是复制文件夹,然后在新的文件夹中进行修改,但是明显这样会造成多余的文件夹,管理极为混乱所以就需要我们的版本分支管理工具git登场了安装从官网下载对应的exe进行安装即可只要这边改成第一个,保证安全性,其他就一路next就可以了配置$ 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文件没有在提交前建立,或者不小心提交了不想要提交的文件,那可以通过下面的命令行进行取消$ git reset 文件名 取消暂存区的文件 $ git rm -r –cached 文件名 移除正式仓库里的文件,加上–cached就不会把本地的文件删除提交之后,或者未提交时,都可以通过这句来查看仓库目前的状态是否有未跟踪的文件,或者暂存区里有尚为正式提交的文件,都会有所显示$ git status如果工作目录显示是干净的,也就完成了我们的初次提交On branch masternothing to commit, working directory clean在提交中,可能会遇到这样的问题warning: LF will be replaced by CRLFwindows中的换行符为 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 -sM //已经提交到暂存的修改文件 M //尚为提交到暂存的修改文件MM //已经提交到暂存,并在暂存后继续修改的文件A //新提交到暂存的文件?? //尚为跟踪的文件分支合并查看分支情况$ git branch fen master在修改完这个分支之后,测试为稳定,希望将其合并到主线上,进行版本更新$ git checkout master //切换回主线$ git merge fen //把支线合并过来$ git merge -d fen //删除此分支至此,就完成了一次工作流程目前用到的都只是个人的版本管理,没有涉及多人协作更具体的学习还是要参照官方文档 https://git-scm.com/book/zh/v…