1.新建本地仓库
在你要创建文件数据库目录下执行
git init
2.提交数据到本地
2.1使用status命令确认工作树和索引的状态。
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# sample.txt
表示 sample.txt文件没有建立索引。
$ git add <file>.. #(指定文件添加索引)
或
$ git add . #(添加所有没有添加索引文件添加索引)
执行 git add sample.txt 把指定文件添加索引
$ git add sample.txt
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: sample.txt
#
“new file: sample.txt”表示既然sample.txt已加入到索引,我们就可以提交文件了。
2.2执行commit命令提交到本地库中
$ git commit -m "提交备注(添加 sample文件)"
[master (root-commit)116a286] first commit
0 files changed,0 insertions(+),0 deletions(-)
create mode 100644 sample.txt
表示提交成功
3.提交到远程仓库
3.1连接远程创库
使用remote指令添加远程数据库。
$ git remote add <name> <url>
在处输入远程数据库名称,在处指定远程数据库的URL。
如:git remote add origin https://xxx.backlogtool.com/git/project_xx/xx.git
执行推送或者拉取的时候,如果省略了远程数据库的名称,则默认使用名为”origin“的远程数据库。因此一般都会把远程数据库命名为origin。
3.2 推送到远程仓库
使用push命令向数据库推送更改内容
$ git push <repository> <refspec>...
处输入数据库名称,处指定推送的分支。
如:git push -u origin master
如果您指定了-u选项,那么下一次推送时就可以省略分支名称了,并要输入你的用户和密码。但是,首次运行指令向空的远程数据库推送时,必须指定远程数据库名称(origin )和分支名称(master)。
$ git push -u origin master
Username:<用户名>
Password:<密码>
Counting objects:3,done.
Writing objects:100%(3/3),245 bytes,done.
Total3(delta 0), reused 0(delta 0)
To https://nulab.backlog.jp/git/BLG/tutorial.git
*[new branch] master -> master
表示推送成功
4.远程仓库拉取到本地
4.1连接远程创库
使用remote指令添加远程数据库。
$ git remote add <name> <url>
4.2 使用pull指令进行拉取操作
$ git pull <repository> <refspec>...
处输入数据库名称,处指定推送的分支。
如:git pull origin master
如果您指定了-u选项,那么下一次推送时就可以省略分支名称了,并要输入你的用户和密码。但是,首次运行指令向空的远程数据库推送时,必须指定远程数据库名称(origin )和分支名称(master)。
$ git pull origin master
Username: <用户名>
Password: <密码>
From https://nulab.backlog.jp/git/BLG/tutorial
* branch master -> FETCH_HEAD
Updating ac56e47..3da09c1
Fast-forward
sample.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
5.检查远程推送log日志
使用log指令来确认历史记录是否已更新
$ git log
commit 3da09c1134a41f2bee854a413916e4ebcae7318d
Author: eguchi <eguchi@nulab.co.jp>
Date: Thu Jul 12 18:02:45 2012 +0900
添加add的说明(备注信息)
commit ac56e474afbbe1eab9ebce5b3ab48ac4c73ad60e
Author: eguchi <eguchi@nulab.co.jp>
Date: Thu Jul 12 18:00:21 2012 +0900
初始化库(备注信息)
6.克隆远程数据仓库
使用clone指令可以复制数据库
$ git clone <repository> <directory>
指定远程数据库的URL, 在指定新目录的名称。
$ git clone https://nulab.backlog.jp/git/BLG/tutorial.git tutorial2
Cloning into 'tutorial2'...
Username: <用户名>
Password: <密码>
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
表示:克隆下来三个文件和仓库
7.模拟远程库冲突形成与解决
7.1模拟远程库冲突形成
二个用户(User1、User2)同时修改一个文件(同一个版本),模拟仓库冲突问题
- 用户1(User1)先编辑同一个文件,对修改内容进行添加数据提交到(commit)本地库中。
- 用户2(User2)再次编辑同一个文件,对修改内容进行添加数据提交到(commit)本地库中,再推送(push)到远程仓库中。
- 用户1(User1),是到用户2推送到运程仓库后,用户1再推送到运程仓库,发生了错误,推送被拒绝(rejected)了。
7.2 解决远程库冲突
- 用户1(User1),应先pull 最新的内容时,会显示合并时发生冲突的讯息,打开冲突文件查看
.....
<<<<<<< HEAD
User1 写中的本地内容
=======
User2 写中运程的内容
>>>>>>>4c0182374230cd6eaa93b30049ef2386264fe12a
- 选择修改冲突部分保留数据再提交(commit ),再推送到(pull)远程仓库
- 这时候,之前被拒绝的push应该可以通过了,push一下就可以了。
- 可以使用
git log
日志查看是否已经push 到远程仓库