git工作原理
git的工作原理还是比较简单的,当我们创建了本地代码仓库后,会在本地代码仓库的根目录中生成一个.git的隐藏文件。
.git为一个文件目录,又叫做版本库。在本地代码仓库文件夹中,除.git目录之外的所有与.git同级的目录及其子目录都叫做工作区。
工作区(Working Directory):仓库文件夹里除.git目录以外的内容 版本库(Repository):.git目录,用于存储记录版本信息 暂缓区(stage) 分支(master):git自动创建的第一个分支 HEAD指针:用于指向当前分支
git add和git commit的原理 git add :把文件修改或者新添加的文件添加到暂存区 git commit :把暂存区的所有内容提交到当前分支
下图就可以解释git add 和 git commit的原理:
git常用的命令
0、git init 初始化 1、git add filename.txt 添加要往远程传的文件到一个临时列表 2、git commit -m "xxx" # 说明为啥上传 3、git push origin master # 上传 4、git clone https://github.com/triaquae/Weibo # 克隆远程的项目 5、git status 查看修改结果 6、git log 查看修改过几次 6.1、git reflog 查看修改过后所有历史操作 7、git log --pretty=oneline 查看修改过的所有版本 8、git reset --hard 加版本 回滚到哪个版本 9、git reset --hard head^ 回滚到上个版本 10、git reset --hard head^^ 回滚到上上(回滚到上两个)个版本 11、git reset HEAD filename.txt 撤回提交到暂存区的操作 12、git checkout --filename.txt 撤销工作区操作(可以多个文件) 13、git rm filename.txt 删除暂存区 14、git checkout -b "dev" 创建分支(引号里是分支名) 15、git push origin xxx 提交到分支库(xxx表示分支名) 16、git branch 查看分支 16.1、git checkout dev 切换到分支库 17、git merge dev 合并分支库到主库(dev表示分支库) 18、git pull 拉远程库的文件 19、git stash 缓存工作区的内容 20、git stash list 查看暂存区的内容 21、git stash apply 把暂存区的内容恢复到工作区 22、git stash pop 把暂存区的内容恢复到工作区并且把暂存区的删除 23、版本回退: git reset --hard HEAD : 回退到当前的版本 git reset --hard HEAD^ : 回退到上一个版本 git reset --hard HEAD^^ : 回退到上上个版本 git reset --hard HEAD~100 : 回退到前100版本 git reset --hard 版本号(前5位)
我们修改或者新添加的文件起初是处于工作区,通过git add命令可以把工作区的文件移动到版本库中的暂缓区(stage)。
处在暂缓区(stage)的代码可以通过git commit -m “提交的注释” 提交到版本库中的分支(master)。
处在分支(master)中的代码可以通过git push命令push到共享版本库。
注意:只有分支中的文件才可以push到共享版本库。
初始化共享版本库
文件夹作为共享版本库
1.创建共享版本库文件夹,然后终端进入该文件夹下执行以下命令创建一个空的共享版本库 git init --bare 2.项目经理将共享版本库的内容先下载下来,命令后面的地址即为共享版本库所在服务器的地址+路径 git clone 地址 3.添加需要忽略的文件 touch .gitignore 去github上搜索.gitignore->Objective-C,把Objective-C中的内容粘贴到创建的.gitignore文件中(或者直接把github中的Objective-C文件下载到该目录下)。然后执行以下命令 git add .gitignore git commit -m “添加了需要忽略的文件” 4.项目经理初始化项目 git commit -m “初始化项目”—>提交到本地代码仓库 5.将项目push远程仓库中 git push origin 6.当源代码管理是使用git,并且在Xcode进行多人开发的操作 注意:当使用git,项目中用到了静态库就不需要通过命令行进行添加
git版本备份
1.1.0版本开发完成,之后对1.0版本进行备份 git tag -a weibo1.0 -m “这个是1.0版本” : 给某一个版本打上标签(weibo1.0是标签名称) git tag : 查看所有的标签 2.需要将1.0版本的标签,push到服务器 git push origin weibo1.0 3.继续开发2.0版本 4.发现1.0版本有bug,从标签里面clone 1.0版本,从标签创建一个fixbug分支,在分支中修复bug git clone 共享版本库 git checkout weibo1.0(标签的名称) git checkout -b weibo1.1fixbug(分支名称) 5.修复后的版本上传AppStore/将1.0fixbug进行备份/将1.0fixbug版本和2.0版本进行合并\ git tag -a weibo1.1 -m “这个是修复了1.0版本bug的1.1版本” git tag git push origin weibo1.1 将子分支中代码合并到主分支,pull—>weibo1.1fixbug—>push master—>其它同事更新 6.删除分支 git branch -r(r是远程仓库的意思,这个命令可以查看远程仓库中的分支) git branch -r -d 分支名称
基本步骤命令
1)touch README.md文件是关于工程代码的介绍,类似与使用说明书 2)git init 初始化一个本地的 git仓库,生成隐藏的.git目录(隐藏的.git目录可使用ls -aF命令可以查看到) 3)git add README.md 把README.md文件添加到仓库中 4)git commit -m "first commit" 执行提交说明,在Gitz中这个属于强制性的 5)git remote add origin https://github.com/XFZLDXF/TEST.git 添加本地仓库origin和指定远程仓库地址 6)git push origin master 推送本地仓库到远程指定的master分支上
到这基本的git使用已经差不多了,暂时也就总结这些后续会更新补充...