git的工做原理仍是比较简单的,当咱们建立了本地代码仓库后,会在本地代码仓库的根目录中生成一个.git的隐藏文件。python
.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的原理:github
0、git init 初始化 一、git add filename.txt 添加要往远程传的文件到一个临时列表 二、git commit -m "xxx" # 说明为啥上传 三、git push origin master # 上传 四、git clone https://github.com/triaquae/Weibo # 克隆远程的项目 五、git status 查看修改结果 六、git log 查看修改过几回 6.一、git reflog 查看修改事后全部历史操做 七、git log --pretty=oneline 查看修改过的全部版本 八、git reset --hard 加版本 回滚到哪一个版本 九、git reset --hard head^ 回滚到上个版本 十、git reset --hard head^^ 回滚到上上(回滚到上两个)个版本 十一、git reset HEAD filename.txt 撤回提交到暂存区的操做 十二、git checkout --filename.txt 撤销工做区操做(能够多个文件) 1三、git rm filename.txt 删除暂存区 1四、git checkout -b "dev" 建立分支(引号里是分支名) 1五、git push origin xxx 提交到分支库(xxx表示分支名) 1六、git branch 查看分支 16.一、git checkout dev 切换到分支库 1七、git merge dev 合并分支库到主库(dev表示分支库) 1八、git pull 拉远程库的文件 1九、git stash 缓存工做区的内容 20、git stash list 查看暂存区的内容 2一、git stash apply 把暂存区的内容恢复到工做区 2二、git stash pop 把暂存区的内容恢复到工做区而且把暂存区的删除 2三、版本回退: 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到共享版本库。app
注意:只有分支中的文件才能够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,项目中用到了静态库就不须要经过命令行进行添加
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使用已经差很少了,暂时也就总结这些后续会更新补充...code