在实际开发中,会使用git作为版本控制工具来完成团队协作。git是这个世界上目前最先进的分布式版本控制系统。
版本控制系统:自动帮我记录每次文件的改动,让同事协作编辑。
集中式缺点:中央服务器管理、速度慢、需要联网
分布式优点:不用联网,免费,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,所谓的中央服务器只是用来方便交换的工具。
下图是集中式和分布式图例
版本库就是 .git,就是git init 创建的一个文件夹,该目录的文件都可以被Git管理起来。
工作区:存放项目文件的地方
暂存区:.git的文件夹下的 index 或者 Stage,通过add . 将工作区的文件添加到暂存区
本地仓库:.git管理,commit添加到本地仓库
远程仓库:如gitte服务器上的仓库,通常使用git clone url地址 克隆到本地仓库
git init git clone 仓库地址 建议使用这个
git status 隐藏自己的修改,好处理bug git checkout --<file> 撤销上一次对文件的修改
git commit -m "备注信息" 需要git add . git commit -a -m "commit_info" 将所有已经使用git管理过的文件暂存后一并提交,跳过add到暂存区的过程
git branch 显示本地仓库的所有分支 git branch -v 查看各个分支最后一个提交对象的信息 git branch <branch-name> 创建分支 git checkout <branch-name> 从当前所处的分支切换到其他分支 git checkout -b <branch-name> 新建并切换到新建分支上 git rebase <rebase-branch> <branch-name> 将一个分支里提交的改变移到基底分支上重放一遍 使用rebase操作应该遵循的原则是:一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行rebase操作
git pull origin master 拉去远程分支的数据,然后将远端分支自动合并到本地仓库中的当前分支 git fetch origin master 使用fetch只是将远端数据拉到本地仓库,并不自动合并到当前工作分支,只能人工合并
git remote rm [remote-name] 移除远程仓库 git remote rename [old-name] [new-name] 修改某个远程仓库在本地的简称 git push <remote-name> <local-branch> 将本地分支推送到远程仓库的不同名分支
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。
# 此为注释 – 将被 Git 忽略 # 忽略所有 .a 结尾的文件 *.a # 但 lib.a 除外 !lib.a # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO /TODO # 忽略 build/ 目录下的所有文件 build/ # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt doc/*.txt # 忽略 doc/ 目录下所有扩展名为 txt 的文件 doc/**/*.txt
待补充.....
官网使用说明
windows安装tortoiseGIT
用小乌龟图形化操作,有个大概的git逻辑应该就可以用了