Git
- 日志记录
- 查看日志
- 获取执行过的命令
- 查看每一次提交记录
- 比较文件差异
- 还原文件
- git远程仓库
- 克隆远程仓库
- 移除无效的远程仓库
- Git远程仓库推送、抓送,和拉取
- Git远程仓库多人协作冲突问题
- Git远程仓库SSH协议推送
- Git分支
- 查看分支
- 创建分支
- 修改分支
- 切换分支
- 推送至远程仓库分支
- 合并分支
- 删除分支
- Git标签
- 标签的基本操作
- Git工作流
日志记录
查看日志
git log
参数:
- graph : 查看分支合并图
- oneline : 标记把每一个提交压缩到了一行中
获取执行过的命令
git reflog
查看每一次提交记录
git log --oneline
比较文件差异
比较工作文件区和暂存区的文件差异
git diff
比较暂存区文件和版本库文件的差异
git diff --cached
注意:
--- :标记原始文件
+++ :标记新文件
@@ :两个不同文件版本的上下文行号。
-: 原始文件删除改行
+ :原始文件增加一行
还原文件
对于恢复修改的文件,就是将文件从仓库中拉到本地工作区,即仓库区 ----> 暂存区 ----> 工作区。
git远程仓库
添加远程仓库
git remote add <shortname><url>
- shortname :远程的名字(可以随意取名)
- url : 远程仓库地址
查看远程仓库
git remote
克隆远程仓库
如果你想获得一份已经存在了的Git仓库的拷贝,这时就要用到git clone命令。Git克隆的是该Git仓库服务上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。当你执行git clone 命令的时候,默认配置下远程Git仓库中的每一个文件的每一个版本都将被拉取下来。
git clone 远程仓库地址url
移除无效的远程仓库
git remote rm 远程仓库的名字
- 此命令只是从本地移除远程仓库的记录,并不会真正影响到远
程仓库。
Git远程仓库推送、抓送,和拉取
推送:当你想分享你的代码时,可以将其推送到远程仓库。
git push [remote-name][branch-name]
git fetch是从远程仓库获取最新版本到本地仓库,不会自动merge,想看见文件就需要手动进行合并文件 git merge origin/master 。
git fetch
git pull是从远程仓库获取最新版本到本地仓库,会自动merge
git pull
Git远程仓库多人协作冲突问题
1、下载远程仓库
git clone
https://gitee.com/WCCRegistered/hundredbattles.git wcc
git clone
https://gitee.com/WCCRegistered/hundredbattles.git kalista
2、设置各自用户环境变量
git config --local -user.name ""
git config --local -user.email ""
3、制造冲突
第一用户修改一个文件并提交
vim a.info
git commit -am"sumbit file"
git push
第二用户慢了一步在提交时发生了报错
vim a.info
git commit -am"sumbit file2"
git push
4、解决冲突
拉取最新代码
git pull
查看哪里冲突
new
<<<<<<< HEAD
#你自己写的
this is baizhan
=======
#别人写的并且提交了的代码
public class HelloWorld{}
>>>>>>>
0b8b926afc79bd22d220bd0cb76ef7d97b5fb5d4
手动删除不要的代码
重新提交
git commit -am"修改了用户头像信息"
git push
Git远程仓库SSH协议推送
SSH为Secure Shell(安全外壳协议)的缩写,由IETF的网络小组(Network Working Group)所制定。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有
效防止远程管理过程中的信息泄露问题。
配置SSH协议
1、使用命令ssh-keygen -t rsa生成公钥和私钥
ssh-keygen -t rsa
**注意:**执行完成后在window本地用户.ssh目录(C:\Users\Administrator.ssh)下生成如下名称的公钥和私钥。
2、复制公钥文件(publisher文件)内容至服务器上
3、配置完成后就可以正常传输数据了
Git分支
查看分支
git branch
创建分支
git branch 分支名字
修改分支
git branch -m 修改分支名字
切换分支
git checkout b1
推送至远程仓库分支
git push 远程仓库名字 分支名字
合并分支
删除分支
Git标签
Git可以给历史中的某一个提交打上标签,以示重要。比较有代表性的是人们会使用这个功能来标记发布结点(v1.0、v1.2等)。标签指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。
什么时候用标签:
通常开发软件时会完成特定的“里程碑”,如软件版号1.0.0或beta-release之类的,这时就很适合使用标签做标记。
标签与分支有什么区别:
标签与分支的区别是,分支会随着Commit而移动,但标签不会。之前介绍过当Git往前推,进一个Commit时,它所在的分支会跟着向前移动。而标签一旦贴上去不管Commit怎么前进,标签都会留
在原来贴的那个位置上。因此,分支可以看成是“会移动的标签”。
- 注意:这两者在被删除的时候,都不会影响到被指到的那个对象。
标签的基本操作
1、列出已有标签
git tag
2、创建标签
git tag 标签名字
3、查看标签信息
git show 标签名字
4、标签推送至远程仓库
git push 远程仓库名字 标签名
5、检出标签
新建一个分支,指向某个tag
git checkout -b [branch] [tag]
6、删除标签
删除本地标签
git tag -d [tag]
删除远程标签
$ git push origin :refs/tags/标签名字
- 注意::refs/tags/是固定写法