git是代码的一套托管工具,它分为两个仓库。
首先将你写的代码提交到本地仓库,这个时候只有你可以看,和你一起开发的同事看不到。
将本地仓库的代码推送到远程仓库(github,gitee,gitlab等之一),然后你的同事就可以通过一个git命令拉下你推送到远程仓库的代码了。
同样,只有你的同事将他写的代码推送到远程仓库后,你执行git命令才能把他写的代码拉下来,合并到你的代码里。
1. git的基础命令
将代码推到本地暂存区命令
1 // 注意,add后面有一个空格
2 git add .
将暂存区的代码推到本地仓库命令
1 // commit后面有一个空格
2 git commit -m '提交说明'
将远程的代码拉下来(同事的代码和你之前提交的代码)
1 // 在拉取远程代码的时候,必须执行上面两步,将你刚写的代码存放到本地仓库,如果你不执行上面两步,那你刚写的代码就会被拉下来的代码覆盖
2 只有你存到本地仓库了,才不会被覆盖
3 git pull
将拉取的代码和你存放到本地仓库的代码,一起推到远程仓库
git push
git push 表示将本地仓库的内容上传到远程仓库。其实就是在告诉 Git,我要把本地仓库的哪个分支的内容推送到哪个远程仓库的哪个分支。命令格式如下:
git push [-f] [--set-upstream] [远程仓库的别名] [本地分支名][:远程仓库的分支名]
# 将本地仓库的master分支推给origin对应的远程仓库的master分支(默认和本地仓库的分支同名)git push origin master
# 等价于上面的写法 git push origin master:master
-f : 本地内容强制覆盖远端内容(一般不使用)
--set-upstream : 推送到远端的同时,建立起和远端分支的关联关系,如果建立起关系,以后不必输入本地分支、远程仓库名、远程仓库分支,可以直接使用 git push 来推到远端;反过来说,在建立联系的时候,必须要有上面三个内容。
查看提交详细信息
git log
查看提交过的历史版本
git log --oneline
根据版本号,回到历史版本
git checkout 版本号
// 或者 master 也就是最近的一次提交
git checkout master
查看分支
查看本地所有分支
git branch
查看远程所有分支
git branch -r
查看本地和远程所有分支(远程分支是红色的)
git branch -a
切换分支
切换分支
git checkout test
创建并切换分支
git checkout -b test
查看本地分支与远程分支关联关系的命令
git remote show origin
git remote show origin 命令会显示与名为 origin 的远程代码库相关的信息,包括远程分支、本地分支和远程分支之间的跟踪关系以及与远程代码库相关的其他详细信息。
git fetch(抓取分支但不合并)
git fetch 将远程仓库中某个分支的更新抓取到本地,但不会进行合并。如果不指定远端名和分支名,则抓取所有分支。
git pull(拉取分支同时合并)
git pull 将远程仓库中某个分支的更新拉取到本地,同时会进行合并。如果不指定远端名称和分支名,就抓取并更新当前分支。
2. git的分支
使用分支,可以更加有条理的进行代码管理。git默认master分支,也叫主分支。
创建dev分支命令
git branch dev
查看所有分支命令
git branch
切换分支
git checkout dev
将dev分支的代码合并到master分支
// 先把在dev分支写的代码提交本地仓库
git add .
git commit -m '我是dev分支写的代码'
切换回要合并的master分支
git checkout master
拉取远程的代码到master分支(将同事的代码和你之前提交到远程的代码拉回来)
git pull
将dev分支写的代码合并到matser上
git merge dev
合并完之后,将合并的代码和pull拉下来的代码,一起推到远程仓库
git push
将本地分支与远程分支关联好之后,就可以进行git pull 或git push 等操作了。
1 远程有分支(此时本地的分支是newbranch)的情况下
// git branch --set-upstream-to=origin/远程分支名 本地分支名
// 将本地newbranch分支与远端branch分支关联
git branch --set-upstream-to=origin/branch newbranch
2 远程无分支(此时本地的分支是newbranch)的情况下
// git push origin 本地分支名
// 此时会创建好一个远程分支
git push origin newbranch
// 此时再关联远程分支
git branch --set-upstream-to=origin/远程分支名
3. git创建远程分支并关联本地分支
1. 本地,远程都没有分支
场景一:本地、远程都没有分支 "v1.0.0"
1.1 先查看确认一下,是否真的没有该分支
git branch -a(查看本地和远程所有分支)
1.2 确认本地没有该分支后,就创建本地分支
git checkout -b v1.0.0(该命令可以创建一个v1.0.0的分支并切换到该分支)
1.3 创建远程分支,并且将本地分支与远程分支关联
git push --set-upstream origin v1.0.0
1.4 检查是否真的创建成功了
git branch -a
git branch -vv(查看本地分支关联的远程分支)
2. 本地有分支,远程没有分支
场景二:本地有分支,远程没有分支
按照场景一,就当作已经创建了本地分支,从第三步开始做。
3. 本地没有分支,远程已存在分支
场景三:本地没有分支,远程已存在分支
这个时候,就需要创建本地分支,并将远程分支和本地的进行关联
(git创建远程分支并关联本地分支_git创建远程branch-优快云博客)
3.1 先查看确认一下分支情况
git branch -a(查看本地和远程所有分支,其中红色部分是远程分支)
3.2 从远程获取代码并合并本地的版本
git pull(此时可以看到红色部分增加了一条v1.0.1)
3.3 创建本地分支并关联远程分支
git checkout -b v1.0.1 origin/v1.0.1
3.4 最后使用 branch -vv 查看关联情况
git branch -vv(查看本地分支关联的远程分支)
4. 本地有分支,远程有分支,但还未关联,需要进行关联
场景四:本地有分支,远程有分支,但还未关联
4.1 git branch --set-upstream-to=origin/远程分支名 本地分支名
git branch --set-upstream-to=origin/master