#远程数据库和本地数据库
远程数据库: 配有专用的服务器,为了多人共享而建立的数据库。
本地数据库: 为了方便用户个人使用,在自己的机器上配置的数据库。
安装HomeBrew,https://brew.sh/
$ brew install git
生成密钥,一路回车、用默认选项
$ ssh-keygen -t rsa
使用命令行复制到粘贴板
$ cat ~/.ssh/id_rsa.pub | pbcopy
在http://。。。。。 中粘贴,添加ssh公钥
使用ssh密钥连接
在目录中创建新的Git仓库
$ git init
克隆数据库
git clone
将文件添加到缓存
$ git add Main.java
添加当前项目的所有文件
$ git add .
查看项目的当前状态
绿"M": 改动后添加到缓存 红"M": 有改动 绿"M"红"M": 在添加到缓存后又有改动
$ git status -s
查看执行 git status 的结果的详细信息
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat
使用 git add 命令将想要快照的内容写入缓存区, 执行 git commit 将缓存区内容添加到仓库
commit后再输入git status很干净
$ git commit -m ‘第一次提交’
取消已缓存的内容
从工作目录中手工删除文件 运行$ git status 显示 红D Main.java
从已跟踪文件清单中移除,然后提交
$ git rm
仅从跟踪清单中删除,仍然保留在当前工作目录中
$ git rm --cached
进入某个目录,删除该目录下的所有文件和子目录
$ git rm –r *
移动或重命名一个文件、目录、软连接’
$ git add README
$ git mv README README.md
$ git branch
查看所有分支
$ git branch -a
$ git branch dev
$ git checkout dev
创建并切换到分支
$ git checkout -b dev
$ git branch -d dev
$ git merge dev
查看所有分支:master(当前)和1.0
$ git branch -a
master分支:修改Main.java内容为1
$ vi Main.java
$ git add Main.java
$ git commit -m “change branch1”
切换到1.0分支:修改Main.java内容为2
$ git checkout 1.0
$ vi Main.java
$ git add Main.java
$ git commit -m “change branch1”
合并master到当前分支
$ git merge master
提示冲突,因为两个分支库中内容有冲突,对冲突内容进行修改
$ vi Main.java
<<<<<<,>>>>>>,=分隔的上下就是冲突的部分,只保留上面或者下面,将<<<<<<,>>>>>>和=这3行都删掉,这里Main.java只保留2
$ git add Main.java
$ git commit -m “chang branch”
$ git merge master
$ git log
按q退出log
参数:
–oneline 查看历史记录的简洁的版本
–oneline -5 只显示5行
–graph 查看历史中什么时候出现了分支、合并 开启拓扑图选项
–reverse 参数来逆向显示所有日志
–author=zhoujie19
–before={3.weeks.ago}
–after={2020-07-18}
$ git log --oneline -5 --graph --author=zhoujie19
git add .
git commit -m “add code”
git push origin HEAD:refs/for/master
1.git安装
这里使用免费的SourceTree客户端
SourceTree下载地址: http://www.sourcetreeapp.com/
2.新建本地数据库
在任意地方新建文件夹test,启动SourceTree,新建-创建本地仓库。
选择之前创建的空文件夹test。
本地数据库创建成功。
3.提交文件到本地数据库
在ttest目录里新建一个名为「data.txt」的文本文件,在文件中输入:hello world!
在SourceTree中双击打开test
选择data.txt,输入提交信息:first commit,点击提交。
选择历史,查看提交结果。
1.在GitHub建立远程数据库
登陆自己的GitHub账号并新建一个名为gittest的仓库
2.更新本地信息到远程数据库 push
在test中点击右上角设置-远程仓库-添加
在远端中显示origin
点击推送,确定后需要填github用户名与密码。
万一用户名或密码填写错误,在这里删掉,下次推送重新填写。
推送结果:
远程数据库的文件列表已更新。
3.复制远程数据库信息到本地 clone
新建文件夹test2,在Soucetree中新建-从url克隆
填入github中的克隆链接
4.对克隆的远程数据库进行更新 push
将test2中的data.txt内容修改为:hello world123!
Soucetree中打开test2,选中data.txt
输入提交信息,进行提交。
点击推送。
可以看到github的远程数据库已更新。
5.将远程数据库信息更新到本地数据库 pull
将远程数据库上修改过的内容更新到本地数据库,就要用到pull功能。这里将远程数据库中修改过的内容更新到本地数据库test。
打开test,看到远程数据库内容已被修改。
点击拉取。
打开test中的data.txt文件内容已更新。
1.冲突原因
这里我们用test和test2来制造一个冲突。
在test中data.txt中添加一行内容:motion1,并进行提交。
在test2中data.txt中添加一行内容:motion2,并进行提交。
从test2 推送内容到远程数据库。
再从test 推送内容到远程数据库,此时出错。因为test的上一版本和远程数据库当前版本有冲突。
2.解决冲突
解决方法:修改冲突的内容。
此时test的界面
先更新到与远程服务器 一致,使用pull拉取功能。
显示合并冲突,点击确定。
进行手动合并,打开test中data.txt。
<<<<<<<与>>>>>>>>之间的这3行表示冲突的部分,=====上面是一个版本,下面是一个版本,保留motion1,修改后。
再次进行提交。
冲突已被整合。