Git ☞ 本地操作
终端创建的流程如下
以在桌面创建工作区为例
初始化操作:
cd Desktop/workspace/
git init
无论是提交新文件 还是修改文件 都要先执行 git add . (git 中的add是将所有操作添加到缓冲区)
配置操作:
配置用户名:git config “user.name” 用户名 (git config –global “user.name” 用户名 (如果加了–global 是配置全局的 也就是所有git的配置用户名都是这个,如果不加,是配置局部的,只在这个git下配置用户名))
配置邮箱:git config “user.email” 邮箱
查看文件内容:cat 文件名
查看配置信息:git config -l (包括用户名,自定义的别名等等)
编辑配置信息:git config -e (如果已经编辑 ESC + :wq退出vim)
使用操作:
设置指令的别名:git config alias.别名 原指令名称 (git config alias.cmt “commit -m”)
创建文件:touch 文件名
添加到缓冲区:git add 文件名 (git add . 表示把当前路径所有文件都添加到缓冲区,不论是修改或是添加文件都要执行这条指令)
提交操作:git commit -m “日志” 文件名 (纳入到本地版本库)
辅助操作:
git log 查看文件修改日志(后面不跟文件名称,默认是当前路径所有日志,可以查看版本号,修改人名称,日志等信息)
git log –pretty=oneline 日志按照一行输出
git的版本回退 :git reset –hard HEAD^(回到上一个(一个^表示回到上一个版本)版本) 如果回退多个版本,git reset –hard HEAD~3(回到前面三个版本之前)
git的版本前进 :git reset 版本号 (将想要前进的版本号写在git reset后面即可)如果终端退出看不到之前的版本号,可以使用git reflog
假如还没有提交仓库,想要回退,只需要 git reset HEAD 即可 (HEAD就表示当前版本号,不用使用git log 去查询当前版本号了)
删除文件:git rm 文件名
查看文件状态:git status 文件名 (是否已经放到缓冲区,以便后面将代码推到服务器,如果有没有放到缓存区的,为了保险,执行git add.)
查看文件最新修改的地方:git diff 文件名
Git ☞ 远程仓库
Git原理:
一、基本概念:
工作区:仓库里除了.git文件夹以外的内容
版本库:.git目录,用于存储记录版本信息(有暂缓去、分支(默认的分支 master 其实是主干 执行commit后代码会被推到master里)、HEAD指针(指向master分支))
原理:git add :把文件修改添加到暂缓区
git commit :把暂缓区的所有内容提交到当前分支
git branch :查看当前分支
首先,你需要有一个github账号
登录成功后,创建仓库
clone :下载远程仓库到本地
下载远程仓库到当前的路径:git clone 仓库的URL
下载远程仓库到特定的路径:git clone 仓库的URL 存放仓库的路径
将要上传的文件手动放入工作区的文件夹下
生成SSH Keys :
本地生成ssh keys命令:ssh-keygen -t rsa -C “邮箱号”,另外还会提示你设置密码,设置密码的话后续登陆会比较麻烦,也直接跳过。
.ssh 文件夹位于用户文件夹下:ls ~/.ssh/
查看生成的公钥:cat ~/.ssh/id_rsa.pub
复制,粘贴到github上即可。
更新日期:2017年9月15日
方法1:命令行
1、本地仓库的创建 (单人开发)
随便创建一个文件夹,命名为WorkSpace
打开终端,cd到这个文件夹目录 执行 git init 就创建了一个本地仓库。执行git add . 就把所有的工作区未提交的文件 添加到暂缓区,然后执行 git commit -m “” 就完成了提交到本地仓库的操作。
2、共享版本库的创建(多人开发)
随便创建一个文件夹,命名为ShareWorkSpace
打开终端,cd到这个文件夹目录 执行 git init - - bare 就创建了一个共享仓库。在多人开发时,参与人员需要通过 git clone 远程仓库目录 来初始化自己的仓库 而不是 git init 命令。因为多人开发需要将自己的代码 提交到共享仓库供其他人下载,所以在提交到共享仓库前,流程和本地仓库的命令是一样的,首先将自己工作区的代码 通过git add . 添加到暂缓区,然后通过git commit -m “” 添加到本地的仓库 ,最后通过 git push 命令提交到远程仓库。 这是如果已经有人更新了共享版本库,需要先执行 git pull 命令 更新本地仓库 。
方法2:使用Xcode自带Git(多人开发)
首先使用终端 创建一个共享版本库
打开Xcode 执行commend + 逗号
这里的地址是file:// + 仓库路径
这个时候在xcode中就添加了一个共享库。
然后在桌面创建一个用户的工作区,随便创建一个文件夹
这里的check 相当于 clone 只需选择刚才创建的用户工作区就完成了clone的操作
接下来模拟初始化一个工程项目,这里先说一下.gitignore
由于不是每个文件都需要提交到共享仓库,所以可以把这个文件添加到用户仓库中,在提交到共享库的时候就会忽略相关文件。
下载地址如下:https://github.com/github/gitignore
选择objective.gitignore即可。
那么如何生效呢?
首先 gitignore 只对 工作区的文件有效 ,对已经在暂缓区的文件是无效的 ,而Xcode的很多操作 默认就已经帮我们完成了git add . 的操作,所以 如果我们创建一个空工程,在导出时直接放入工作区的仓库中,这是Xcode已经帮我们放到暂缓区中 所以即使工作区有.gitignore 也不会帮我们忽略,我们可以先将.gitignore提交 再创建空工程 或者 将Xcode先创建在桌面 手动拖入工作区 这时候如果工作区有.gitignore也是可以生效的。
方法3:github
第一种方式:https。 打开Xcode 新建一个仓库,关联这个远程仓库,复制github上的地址到Xcode的Address 并且填写github的用户名密码信息,关联好后,check到本地工作区即可。
第二种方式:SSH。 SSHkey的步骤完全按照github上的指示即可,其余过程就是打开Xcode关联,步骤一致。
更新时间:2017年11月14日
最近碰到了一个很奇葩的问题,创建sshkey的时候 总是提示 ~/.ssh 没有这个目录 但是创建这个目录:mkdir ~/.ssh
又会提示这个目录已经存在,解决办法如下:
rm ~/.ssh 然后再mkdir ~/.ssh 就可以了