根据马士兵教育的课程资料整理所得,仅用于学习使用,如有侵权,请联系删除。
Git常用命令
查看版本号
- git --version
清屏
- clear
设置签名
- git config --global user.name “dujinliang”
设置邮箱
- git config --global user.email “1162378922@qq.com”
切换目录
- cd E:
本地仓库的初始化
- git init
显示文件夹下的文件
- ll
- ll -la
- 显示隐藏文件
将文件提交到暂存区
- git add Demo.txt
将暂存区中的内容提交到本地库
- git commit -m “这是我提交的第一个文件” Demo.txt
查看工作区和暂存区的状态
- git status
查看提交的历史记录(从近到远)
- git log
- 到日志过多,会出现分页的效果
- 下一页 : 空格
- 上一页 :b
- 到页尾,显示END
- 退出 :q
- git log --pretty=oneline
- 在一行中进行展示
- git log --oneline
- 在一行进行展示,关键字是简写的
- git reflog
- 在一行进行展示,关键字是简写的,有一个回退步数的显示,HEAD@{数字},即回到当前这个历史版本需要走多少步
版本回退
- git reset --hard 索引号
- 本地库指针移动的同时,重置暂存区,重置工作区
- git reset --mixed 索引号
- 本地库的指针移动的同时,重置暂存区,但是工作区不动
- git reset --soft
- 本地库指针移动的时候,暂存区和工作区都不动
删除文件
- 删除工作区中的文件
- tm Test.txt
- 将删除操作同步到暂存区
- git add Test.txt
- 将删除操作同步到本地库
- git commit -m “删除Text.txt文件” Test.txt
找回本地库中删除的文件
- 实际上就是将历史版本切换到刚才添加文件的那个版本即可
- git reset --hard 索引号
找回暂存区中删除的文件
- 删除工作区数据
- rm Test.txt
- 同步到缓存区
- git add Test.txt
- 恢复暂存区中的数据
- git reset --hard 索引号
- git reset --hard HEAD
比较文件
-
git是按照行为单位管理数据,所以删除一行,添加一行
-
将工作区中的文件和暂存区中的文件进行比较
- git diff [文件名]
-
多个文件的比对,比较工作区和暂存区中所有的差异
- git diff
-
比较暂存区和工作区中的差别、
- git diff [历史版本] [文件名]
分支
- 同时多个分支可以并发开发,互相不耽误,互相不影响,提高开发效率
- 如果有一个分支功能开发失败,直接删除这个分支就可以了,不会对其他分支产生任何影响
查看分支
- git branch -v
创建分支
- git branch branch01
- 你在哪个分支上,是通过*来显示的
切换分支
- git checkout branch01
合并分支
- 先切换到主方法中
- git merge branch01
查看文件内容
- cat Test5.txt
- 出现冲突
-
在用同一个文件的同一个位置修改
-
经过商议,留下想要的
-
将工作区中内容添加到暂存区
-
然后进行commit操作
-
查看别名
- git remote -v
创建别名
-
git remote add 别名 地址
-
fetch
- 获取
-
push
- 推送
向远程库推送数据
- git push 远程库别名 要推送的分支
从远程库克隆数据
-
git clone 远程库的地址
-
克隆操作可以帮我们完成
- 初始化本地库
- 将远程库内容完整的克隆到本地
- 替我们创建远程库别名
加入团队
- 可以从GitHub中clone对方的数据,但无法提交,可由对方向自己发送邀请,复制邀请链接,由被邀请者在浏览器中打开同意即可
拉取操作
- pull操作,相当于fetch + merge
抓取操作
-
git fetch origin master
-
在抓取操作执行后,只是将远程库的内容下载到本地,但是工作区中的文件并没有更新,工作区中还是原先的内容
-
抓取后可以去远程库看看内容是否正确
-
发现内容都正确,就可以进行合并操作了
-
合并之前应该将分支切换回来
-
进行合并:merge
-
-
远程库的拉取可以直接利用pull命令来完成
- git pull origin master
区别
-
fetch + merge 操作
- 为了保险,慎重
-
pull
- 代码简单,省事
-
多人共同提交数据时,会出现冲突问题,当一个人提交完成后,另一个人提交时会报错,需要先抓取该数据,对冲突进行处理,再提交,再提交时,git commit “注释信息”,此处不写文件名
跨团队合作
-
获取远程库地址
-
进行fork操作
- 进入账号后,复制地址
- 点击fork操作
-
克隆操作
-
然后更改数据,添加到暂存区,然后提交到本地库,然后push到远程库
-
进行pull request,等待审核
-
进行审核
-
可以互相留言
-
确定通过后,merge合并
免密操作
-
进入用户主目录中,
- cd ~
-
执行命令,生成一个.ssh目录
- ssh-keygen -t rsa -C GitHub邮箱
- C要大写,邮箱是GitHub注册的账号的时候对应的邮箱
- 三次回车确认默认值即可
-
发现在.ssh目录下有两个文件
-
打开id_rad.pub文件,将里面的内容进行复制操作
-
打开GitHub账号,找到settings,ssh and gpg keys,new ssh keys
-
生成密钥以后,就可以正常进行push操作了
- 对ssh远程地址起别名
- 展示别名
- 添加到暂存区,提交到本地库,然后push到远程库(地址用的是ssh方式的地址)
允许不相关历史的合并
-
用于两个仓库有不同的开始点
-
–allow -unrelated-histories
-
git pull 地址 master --allow -unrelated-histories
- i进入编辑
- ese退出编辑,:wq退出
-
push推送
- git push -u origin master -f
-
这样远程库和本地库就可以交互了
-
一般在开发中,先pull操作,再push操作,不会直接进行push操作