一、远程仓库
为了能够在任意Git项目上协作,将仓库托管互联网上。而且远程仓库可以有很多个,不同仓库对不同用户可能会设置不同权限。
-
添加远程仓库
git remote add <仓库在本地名称> <仓库URL>
例如:git remote add test https://github.com/CDLche/test.git` 这里将我自己github上新建的test仓库添加到本地且名字为test -
查看远程仓库
git remote
查看已经配置的远程仓库
git remote -v
详细显示所有
远程仓库在本地的简写(一般都是origin)以及对应的远程仓库URL。
git remote show <仓库在本地名称>
查看某个仓库的详细信息,包括远程仓库的URL以及分支信息。
-
移除远程仓库
git remote remove/rm <仓库名字>
git remote rename <仓库原始名字> <仓库新名字>
该命令用于修改远程仓库拉取到本地后仓库名字
例如:git remote rename test origin -
从远程仓库抓取与拉取
git fetch <仓库名字>
git pull <仓库名字>
git clone 远程仓库URL
使用git clone
在本地克隆一个仓库,并将本地仓库名默认设为origin
fetch
和pull
区别:git fetch
仅仅只是将远程仓库数据下载到本地仓库,不会自动合并;git pull
命令抓取数据后自动将远程分支合并到当前分支。
- 推送到远程仓库
git push <仓库在本地名称> <分支>
该命令在对应本地仓库分支中使用时候i不需要加后边两个参数
例如:git push test main 将main
分支推送到test
仓库服务器,使用HTTPS协议推送到远程仓库需要你获得认证填写用户名与密码
git push -u <仓库名称><分支>
使用-u
参数把本地main分支推送到远程仓库main分支的同时将本地和远程关联起来,再推送或者拉取的时候使用简化命令git push
和git pull
就行。
二、分支
当你想保存所编写的代码但是又暂时不想被被人看见使用,就可以创建在原来的分支上创建一个新的分支, 从而能够继续正常工作,等到相发布的时候就直接合并到原来的分支上就行。Git不同于其他版本控制系统,其创建以及切换分支速度很快。
分支原理
Git在保存的时候不是文件的变化或差异,而是一系列不同时刻的快照。在提交内容的时候会有一个指向暂存内容快照的指针。而新建的分支就是创建了一个新的指针。默认情况下版本每一次提交HEAD指向的都是当前主分支的当前版本,通过新建分支后切换到新分支后,HEAD指向新的分支版本。
分支操作
- 分支创建:
git branch 分支名字
- 分支切换:
git checkout 分支名字
git checkout -b 分支名字
新建一个分支的同时切换过去。另外切换分支的时候需要注意,切换分支后本地目录会被重置,文件夹文件等会发生变化,所以需要 先提交。 - 合并分支:
git merge 分支名字
例如:将test分支合并到main分支,要先切换到main分支里边,然后git merge test
. - 合并冲突
有时候会出现我们在新建分支的同时别人也新建一个分支并且人家提交合并比较早,这时候我们在合并就会出现错误、- 方法一:
git status
查看哪些改变导致冲突手动去修改,git commit -a -m
成功合并。 - 方法二:
git merge -no-ff -m "注释" 分支名
- 方法一:
- 分支删除:
git branch -d 分支名字
如果分支有未合并的内容用-d
参数是无法删除git branch -D 分支名字
使用-D
参数强制删除
- 分支管理
git branch
查看所有分支,分支前边有*
表名当前工作所在分支git branch -v
查看分支详细信息,如最后一次提交时间git branch --merged
查看已经合并到当前所在分支的分支。或者后边加一个分支名字,来查看未合并到该分支的分支。例如:git branch --merged test
查看没有合并到test分支的分支git branch --no-merged
查看还没有合并到当前分支的分支
分支隐藏
上面切换分支的时候讲到如何当前分支有内容修改但是还没有提交是无法正常切换分支的,而且切换分支后本地目录重置。但是我们有时候就需要临时新建一个分支切换过去,有需要保存当前工作场景。git stash
将当前工作内容“隐藏起来”,新建分支并切换过去进行工作提交完成后,git stash list
查看我们刚才的工作内容,通过git stash apply
恢复工作应用场景,但是这里的stash内容并没有删除,需要我们使用git stash drop
删除。还有 最后两部可以用一个命令来完成:git stash pop
。
三、标签
通过在给远程仓库推送的历史中打上标签来表示当时推送上去的功能等。
- 列出标签
git tag
该命令按照字母顺序列出标签
git tag -l/--list
git tag -l 'tagname'
列出某一标签具体信息 - 标签类型
- 轻量标签(lightweight)
轻量标签只是某个特定提交的引用,可以是一个临时的标签。 - 附注标签(annotated)
附注标签是存储在Git数据库中的一个完整对象,可以被校验,标签中包含打标签者的名字、邮件地址、日期时间以及标签信息。
- 创建标签
git tag -a 标签名字 -m "标签信息"
创建附注标签
git tag 标签名字
创建轻量标签 - 查看标签
git show 标签名字
查看标签的具体信息 - 共享标签
使用git push
不会将标签推送到远程仓库
`git push 推送仓库名称 标签名字 - 删除标签
git tag -d 标签名字
该命令仅仅是删除本地标签,并没有删除远程仓库标签
git push 仓库名字 --delete 标签
删除远程标签名字