登陆github网站,点击如下图所示项:
点击NEW,创建一个新仓库。
给新仓库命名并写介绍(description),选择public(private需要收费),点击create repository。
这样就新建了一个名为111的远程仓库。
注意:如果想删除远程仓库,点击setting,在最后点击Delete this repository即可删除这个远程仓库。
接下来我们将一个文件夹作为本地仓库,并将需要同步到远程仓库的所有文件都放在这个文件夹下。首先我们要安装好GIT软件。然后继续下面的操作。
如上图,我们已经建立了一个本地仓库文件夹,且文件夹内已放置了要同步到远程仓库的文件“示例文件”。右键选择Git bash here。我们即打开了一个位置在当前文件夹内的git bash窗口。
第一次同步时,要使用命令:git init 初始化git本地仓库。(以后就不必每次初始化)
初始化成功后,文件夹内会出现.git隐藏文件。
Git有三个状态,modified(已修改),staged(已暂存),committed(已提交)。已修改表示修改了文件,但还没保存到本地仓库中。已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照(snapshot)中。已提交表示数据已经安全地保存在了本地仓存中。
以后每次要同步本地仓库的文件到远程仓库时,要先将文件加入到暂存区。
即使用命令:git add .或git add -A
git add . : 添加已修改的(新增或修改)内容至暂存区(不含删除的文件)
git add -A:添加本地所有修改的内容至暂存区(包含删除的文件,如果本地删除了文件,并想把这个修改也同步到远程仓库就要用这个命令)。
随后将本次的修改递交(commit)到本地仓库中。
命令:git commit -m ”本次提交内容的备注,类似一个标签“
下面我们要将本地仓库和远程仓库关联起来(只需要第一次时做),命令为:
git remote add origin https://github.com/zgcr/111.git(注意这个地址是示例,要使用你自己的远程仓库的github上的https地址)
接下来将本地库的所有内容推送到远程库,由于是第一次推送,远程库是空的,我们第一次推送master
分支时,加上了-u参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
命令:git push -u origin master(第一次推送时加-u,以后不必加-u)
输入你的github远程仓库所在的github的账号名和密码。
此时开始将本地仓库的内容同步到远程仓库上。
这时我们查看对应的远程仓库,可以看到文件已上传到远程仓库。
以后我们想要再推送本地仓库的内容到远程仓库,只需要在本地仓库文件夹,右键选择Git bash here。
然后使用命令:git add .或git add -A添加已修改的内容到暂存区;
再使用命令:git commit -m ”本次提交内容的备注,类似一个标签“ 将内容提交到本地仓库。
最后使用命令:git push origin master将内容推送到远程仓库上。
可以看到对应远程仓库已发生变化。
如果出现Your branch is ahead of 'origin/master' by X commit.
使用命令:git reset --hard origin/master
之后可使用命令:git status查看master分支之前多次进行的commit是否已经全部清除。
如果使用git push origin master后出现
error: failed to push some refs to '[email protected]:qzmly100/repository-.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
这种情况是远程分支上存在本地分支中不存在的提交,可以先抓取并合并远程仓库全部内容(git pull origin master),再推送本地仓库数据(git push origin master)。
如果你确定远程分支上那些提交都不需要了,那么直接git push origin master -f
,强行让本地分支覆盖远程分支。