步骤1-4简单介绍一下将文件添加到本地仓库(repository),步骤5是配置ssh,如果配置好了请跳过,步骤6新建github仓库,步骤7,8,9介绍了3种情况的同步方法,步骤9最常用。
1、安装git
从git官网或者百度git下载,下载git安装包,以默认配置(全部点击下一步)即可安装git。安装成功之后,电脑的开始菜单中出现“Git Bash”
2、基本设置
通过下面2条命令,设置用户名和邮箱地址(相当于注册一个账号来代表这台电脑)
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
3、创建本地仓库(repository)
选则一个文件夹作为本地仓库
$ pwd //显示当前目录
$ cd e: /gitTest //我打算将git的仓库建立在e盘的gitTest文件夹下。
$ git init //将当前路径初始化为git仓库
4、将文件添加到仓库
$ git add hello.txt //将hello.txt文件添加到仓库
$ gti commit -m "add hello.txt" //把文件提交到仓库,-m 之后的"add hello.txt"是对这次操作自己添加的描述,可以随便写.
$ git status //查看仓库状态
5、设置ssh(仅首次使用需要配置)
创建SSH Key:在gitbash中输入
ssh-keygen -t rsa -C "youremail@example.com"
(注意其中C是大写的)然后一路回车到底
在提示的路径中的.ssh文件夹中有2个文件,分别为id_rsa(私钥)和id_rsa.pub(公钥)
用记事本打开id_rsa.pub,复制其中的内容,打开并登陆github。
在个人设置(Settings)中找到SSH设置,点击添加sshkey(new ssh key)
点击添加之后,git才能向github进行提交。
6、在github上新建一个仓库(repository)
点击右上角的加号,选择添加新仓库,填写仓库名,点击添加
7、将本地仓库同步到空远程仓库(repository)
适用情景:项目刚开始,需要建立一个空的github仓库,将本地的内容同步到github上
此时:本地仓库有一个hello.txt,github上有一个空的仓库test1
$ git remote add origin git@github.com:mozhilei/test1.git
$ git push -u origin master
其中git@github.com后面的内容(mozhilei/test1)改为你自己的用户名和仓库名
当你对本地的文件进行修改之后,需要再次用git push 命令进行同步。
8、将远程仓库克隆到本地
适用情景:你向要开发一个项目,这个项目的很多内容,别人已经做好了,你需要给下载(clone)下来使用。
此时:本地空仓库,github上有一个test2的仓库,里面有一个README.md文件
$ git clone git@github.com:mozhilei/test2.git
mozhilei/test2替换成自己想要克隆的仓库的地址,在github上点击“clone or download ”按钮会显示地址。
之后,test2就从github上,复制到了你电脑的仓库中。
9、同步远程和本地仓库
适用情景:有A同学和B同学同时开发一个程序,A同学写一个部分,B同学写另一个部分,之后都要同步到github的test1仓库中。如果是空仓库,B同学先采用步骤7的方法成功同步。
此时:A同学电脑本地有一个gitTest仓库,里面有一个nihao.txt,github上有一个test1仓库,其中包含一个hello.txt,如图:
此时,本地和远程仓库出现版本不一,需要先将远程仓库取回,和本地仓库整合,然后在用git push 同步到远程仓库
$ git pull origin master
(如果没有通过
$ git remote add origin git@github.com:mozhilei/test1.git
设置过origin 那么需要将origin替换成你的github仓库地址)
之后弹出vim编辑器要填写理由,先按一下ESC键,然后按住shift,输入z两次(先按Esc,然后输入两个大写的Z)
其实,git pull 的语法是git pull <远程主机名> <远程分支名>:<本地分支名>,但是可以简写成上面那个样子,从远程取回master分支,合并到当前分支。
提示:如果再git pull时提示:fatal: refusing to merge unrelated histories,那么只需要再git pull之后加上–allow-unrelated-histories
之后再用git push 同步到github的test1上就可以了
$ git push origin master
这样就同步完成了。
作者:林岂凡
原文链接: 点击这里