之前已经建立了ssh key并添加到了github中,
因此现在直接使用
ssh -T git@github.com 命令连接到github
比如现在要把本地的SICP习题上传至github上
那么先cd到习题目录所在位置
使用git init 命令初始化git仓库
然后在目录中进行想要的文件添加和修改
git add <username> 添加文件
git commit -m "version" 提交修改 ,增加参数-a可以跳过git add过程,直接提交,但是如果有新增的文件的话不适用
git remote add <remote-name> <url> 添加远程仓库
此外,可以使用git branch <branch-name> 新建分支,然后使用 git checkout <branch-name> 进入该分支下。
当然以上两步可以直接用一部代替,只要加个参数-b就可以了,例如git branch -b <branch-name>这样。
git merge <branch-name>将某个分支合并到当前分支,当然关于分支的这个问题很有讲究所以有非常多的东西要讲,以后再深入讨论。
最后使用 git push <remote-name> <branch-name> 将 本地分支推送到远程仓库
当然也可以将本地分支的名字在推送到远程仓库时进行重命名
比如 git push <remote-name> <branch-name>:<new-branch-name> ,加个冒号就行了!
这是上传的远程仓库的过程
下面是用远程仓库更新本地仓库
首先介绍git clone操作
假设某个大牛有一个项目,我们需要把它的所有项目文件下载到本地,那么我们使用下面的命令
git clone <url> <local-dir>
然后cd到本地仓库的目录,这个时候会发现本地仓库中只有一个分支master
我们使用git branch -a 命令可以查看到远程分支
既然这个分支是远程分支,那么我们需要提取下来
使用上面提到过的命令稍微修改一下
git checkout - b <new-branch> <remote-name>/<branch-name>
其实git clone操作是将远程仓库中的所有文件都复制一份到本地
那如果在本地仓库已经存在下,如何将远程仓库更新至本地仓库呢?
我们有git fetch以及git pull 两个命令
git pull比git fetch高级
git pull 是将远程仓库的文件下载至本地然后进行merge
而git fetch只是将远程的仓库更新至本地但不进行merge,就像clone时那样,他将分支全部定义为remote/branch
需要手动选择进行合并,因此git fetch在一定意义上是安全的
git pull/fetch <remote-name> <branch-name> ,branch-name可加可不加
这次差不多就学了这么点,更深入的下次再看