3. Git 常用指令
3.1 环境配置
设置的name和email可以是任意的,他不会被校验,所以不用和GitHub或者码云上注册的相同。
3.2 获取Git仓库
3.2.1 本地初始化一个仓库
首先git init初始化本地仓库
他会生成一个隐藏文件夹.git,若看到该文件夹,则说名本地仓库已成功建立。
3.2.2 远程克隆仓库
3.3 工作目录、暂存区以及版本库概念
3.4 Git工作目录下文件的两种状态
3.5 本地仓库的操作
3.5.1. git status 查看当前仓库状态
git status -s 查看当前版本库,简介版本
其中
M
代表修改 ;???
代表未跟踪3.5.2. git add 将未跟踪文件添加到暂存区
通过提示命令可以将添加到暂存区的文件,在重置回未跟踪状态
3.5.3. 将暂存区的文件修改提交到本地仓库 git commit
3.5.4 git rm 删除文件
命令删除,直接把该操作加入到暂存区,所以我们直接commit就可以了
但是我们鼠标右键删除文件的话,他是显示红色,则说明改操作并未加到暂存区,所以我们直接使用commit提交,需要先将该操作加到暂存区之后,在进行commit。
3.5.5 将文件添加到忽略列表
要管理的是我们的代码和html文件,一些日志文件还有其他生成的文件并不需要git进行管理,所以我们要进行忽略
由于windows无法创建.gitignore文件,认为非法,所以我们用命令行进行建立,toch .gitignore,然后在进行修改。
创建完gitignore文件之后,不会显示没有添加到暂存区的文件User.class 和 UserDo.class,但是新创建的.gitignore会显示未添加到暂存区
3.5.6 git log 查看日志记录
不能显示全部日志信息,回车,看后面的操作。
退出,输入q,然后回车
3.6 远程仓库操作
3.6.1 查看远程仓库
如果是克隆的则会显示克隆仓库服务器默认的名字,git remote -v 可以查看详细信息,显示仓库地址,可以进行fetch和push
如果不是克隆是关联的自己创建的则不会显示任何信息
3.6.2 添加远程仓库
其中short name 一般默认使用origin
3.6.3 从远程仓库克隆
3.6.4 移除无效的远程仓库
3.6.5 从远程仓库抓取与拉取
为了测试每种方法,我们先保证远程仓库和本地仓库的数据一致,然后我们将关联远程仓库的本地仓库文件全部删除。
此时的repo1为一个普通的文件夹,也不是本地仓库因为没有.git文件夹,首先进行git init初始化一个仓库,此时的本地仓库和远程仓库毫无联系。因为是一个新建的本地仓库。
如果想让本地仓库进行fetch远程仓库,首先要先关联本地仓库到远程仓库。
git remote add <short name> [url]
git fetch origin master
其中 git fetch 为抓取命令,origin为远程仓库的地址,master 为master分支。但是在本地仓库中并没有更新111.txt文件。这就是fetch特点,其实他已经抓取到本地仓库(.git隐藏文件夹的objects文件夹中,找不到,为二进制文件保存)但是没有merge到本地仓库,然后我们需要手动合并。
git merge <origin/master分支,在fetch时候可以获得>
此时就可以在工作区找到了
同样对文件夹,进行全部删除,重新创建本地仓库,关联远程仓库,在执行命令看效果。
git pull origin master
强行拉取了
git pull origin master --allow-unrelated-histories
写一下日志信息,若不写wq保存退出。
3.6.6 推送到远程仓库
git push origin master
其中origin 为远程仓库的地址,master为本地的master分支。
将本地的分支推送到远程分支上
3.7 Git 分支
3.7.1 查看分支
分支分为:本地分支
和远程仓库分支
- 列出本地所有分支
git branch
- 列出所有远程分支
git branch -r
- 列出本地和远程所有分支
git branch -a
3.7.2 创建分支
git branch <分支名称>
其中*
代表当前所在分支
3.7.3 切换分支
git check out <分支名称>
3.7.4 推送至远程仓库分支
git push origin b1
其中 git push 为推送命令,origin为远程仓库地址,b1为本地分支
3.7.5 合并分支
之前的master b1 b2 分支的内容都一致,那么我们先切换到b1分支,增加一个user.java文件,然后看状态肯定是未跟踪,然后我们添加暂存区然后到本地仓库,commit的时候写上在b1分支添加user.java文件。
然后切换到master分支下则user.java文件消失,这说明我们master分支下没有user.java文件。
现在想完成,将b1的内容整合到master上去。因为我们要将master上合并b1的内容。
首先我们要切换到master分支
git merge b1
首先在master分支下,对user.java进行修改,增加一行。然后提交本地仓库
然后,我们切换b1分支,然后再b1修改,然后提交本地仓库。
切换回master,对b1进行合并操作。
报错如下
查看user,java文件。
手动修改。然后保存,进行提交
通过git add确定已经修改
3.7.6 删除分支
当我们要删除的分支和远程仓库的分支不一致,则删除动作不会成功,如果要强制删除,那么我们要将删除命令中的d改写成D
git branch -D <branch name>
实际开发中不建议强制删除.想一下,如果我在该文件中进行了开发,但是删除了该分支,并提示了本地该分支与远程分支不一致,然后我们还强制删除了,可能会有一些损失.所以再删除分支之前要保证修改的内容要合并到其他分支或者推送到远程仓库中.
git branch -d <branch name>
删除远程分支
git push origin -d
3.8 Git 标签
3.8.1 列出已有的标签
git tag
git show <tag name>
3.8.2 创建新标签
git tag <tag name>
3.8.3 将标签推送至远程仓库
git push remote <tag>
3.8.4 检出标签
首先会新建一个分支,然后让该分支指向这个标签
3.8.5 删除标签
删除本地仓库
git tag -d <tag name>
删除远程仓库
git push origin :refs/tags/<tag name>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。