刚刚参加工作,之前从没接触过git等版本控制器,靠着在网上搜罗的各种资料,茫然的开始慢慢了解git了(期间没少因为知其然不知其所以然导致对各种问题不知道如何下手,多亏有大神带我,我就看着他帮我解决后留下来的操作慢慢消化理解). 下面分享下我自己的使用体会.有不对的地方万望赐教!!
在我的理解中,git 分为工作区(就是项目存放的目录也就是你git init的目录), 暂存区(add 之后就会将更改放在暂存区), 版本库(就是commit提交后存放的地方) ps. git reflog 查看版本号。 git reset –hard 版本号 恢复到指定的版本.
这就是在本地操作版本控制的基本流程, 不过一般在工做中都是需要与远程仓库进行交互的(就是在这掉了无数的坑..)
1: 是要添加远程仓库的地址(为了方便嘛,不用每次提交都输地址) git remote add 别名 地址 例如: git remote add origin git@11.111.111.111:/haha/haha.git
ps. 查看所有远程主机: git remote -v 删除远程主机: git remote rm 主机名 修改远程主机名: git remote rename 原主机名 新主机名
2: git fetch git merge 一般多人开发是,不只是你一个人往远程仓库里提交,所以你每次上传前先下载下你远程仓库的最新代码(就是git fetch.这样只是下载,并不会将最新的代码,更新到你的工作区, 所以就要用到: git merge origin/master 将origin上的master分支 更新到当前所处的分支上. 因为git merge 分支1 分支2 中的分支2不明确指出时默认是当前分支.)
ps. git pull 是git fetch 和 git merge 的合并, 会下载最新代码并直接更新到工作区
3: git push 将当前最新的版本提交到远程仓库. git push origin master:test 提交本地仓库master分支作为远程仓库的test分支(如果之前未git fetch等,肯会造成push失败,因为你当前本地的远程仓库版本序列号和当前远程仓库的最新序列号不一致,就会导致提交失败,个人觉得这样是因为如果你很久未提交,版本非常落后,如果提交后你提交的就是最新的了,这样不合理.所以只要当本地的远程仓库版本序列号和当前远程仓库的最新序列号一致时提交才有效.)
4:以上git 基础的版本控制基本上说完了,其他一些语法操作在用到时再查阅补充. 补充一点: 关于.gitignore 的使用 这个文件可以忽略掉一些不必要提交的东西, 像android编译后产生的多余代码是很大且是不必要的,如果一起提交的话会导致提交的好几百M的内容.网上慢的话就懵逼了啊(我就傻傻的等过多次,导致8点才下班..) .gitignore 文件需要在控制台中生成,
1. cd进入需要产生.gitignore的目录(一般是在工作区目录). touch .gitignore
2. nano .gitignore 进入vim编辑 (或直接用编辑器打开.)
3. 添加需要忽略的文件或文件夹 (在add 之前 先git status 查看下当前修改的情况,看看是不是有自己不希望提交的修改, 如果已经add 了, 也可以 git rm 文件 --cache)
例如下面两个就忽略了 proj.android/bin/和proj.android/obj/文件夹
proj.android/bin/
proj.android/obj/
以上就是本次分享的全部内容了, 自己的学习时遇到困难就百度,得到了很多人的帮助(虽然他们也不知道帮助到了我..).所以我也希望自己的一些分享能够让帮助到别人.对需要帮助的人有启发我就很满足了. 另外如果有不正确或不恰当的地方也希望能够多多指正.