git_快速教程
名词概述:
工作区:即项目文件夹,我们直接编辑的地方,注意: 不包含.git目录
暂存区:在.git目录下, 数据暂时存放的地方,在工作区和版本库之间进行数据交流
版本库:也叫本地版本库,即.git目录,git 之所有快,就是因为,大部分的提交均是在本地版本库上操作的,只有最后一次推送到远程仓库会依赖网络。
1、git init 把当前目录 变成 可以git可以管理的仓库
此操作会再当前目录下创建一个.git文件,而 这个文件相当于是git 的一个版本库
2、git status 查看当前仓库状态(查看当前工作区和当前版本分支的差异)
git status 还可以 检测本地仓库 和远程仓库的差异
这里提示本地分支 领先于远程分支 3次提交
3、git diff 查看当前仓库更具体的变动信息(查看当前工作区和当前版本分支的具体差异)
4、git add 将工作区的改动提交到暂存区
如果改动地方比较多,一次提交所有的改动 git add -A . 注意A 后面有 " . "
这里提示 将要被提交到修改包括 text1.txt
5、git commit -m "add text1.txt" 将暂存区的修改 提交到版本库(提交到本地版本库的当前分支)
6、git push 提交本地的处所的分支修改到远程仓库的分支
git push <远程主机名> <本地分支名>:<远程分支名>
命令未设置远程 分支相关信息的时候 根据远程仓库和本地仓库的关联信息 进行推送和拉取
在远程仓库中没有本地仓库创建的分支情况下直接 git push 将报错
原因:远程仓库并没有 dev_2这个分支
解决方式1
git push --set-upstream origin dev -- 创建远程分支,并将远程分支和本地分支关联起来
后续可以 直接使用 git push 建本地分支 直接推送到远程分支
解决方式2
切换至本地指定分支 执行
git push origin dev --将本地分支推送至远程分支dev (如果远程仓库没有dev分支 则先创建dev分支)
7、git pull 从远程获取代码并合并本地的版本
git pull <远程主机名> <远程分支名>:<本地分支名>
命令未设置远程 分支相关信息的时候 根据远程仓库和本地仓库的关联信息 进行推送和拉取
8、git branch ---- 查看当前分支 *表示当前所属独分支
9、git checkout --切换分支
10、git checkout -b dev -- 创建一个dev分支 并切换至创建的分支

git checkout -B dev 强制创建新分支,并且会覆盖原来存在的同名分支。
11、git branch dev -- 创建一个分支,当不会切换至所创建的分支 (还在当前的分支)
12、git checkout dev -- 切换至指定分支
13、git merge xxx --将指定分支合并到当前分支
git merge dev_2
本地分支是 main 情况下,执行该语句时 ,会将dev_2分支合并到main 分支
14、git branch -d xxx --删除本地仓库中的指定分支
15、git remote show origin --查看远程仓库的更多信息
Remote branches: (远程仓库已跟踪的分支,远程仓库的分支)
dev tracked
dev_2 tracked
main tracked
设置 git pull 关联
Local branches configured for 'git pull'
(执行git pull 的时候 可以 直接拉取的远程仓库的分支 ,比如当前本地分支 是dev ,执行git pull 的时候 ,就直接可以拉取远程仓库的 dev分支 而不用手动指定分支)
dev merges with remote dev #本地分支 是dev 分支的情况下,直接执行git pull 将从远程仓库 dev 分支拉取 到本地进行合并
main merges with remote main
比如 切换至git dev_1 分支下直接执行 git pull
会提示 当前分支没有跟踪,需要指定分支取拉取
根据提示 可以使用 设置 执行git pull 关联跟踪的远程分支和本地分支
设置关联命令
方式1
$ git branch --set-upstream-to=origin/远程分支 本地分支
$ git branch --set-upstream-to=origin/dev_1 dev_1
(备注:本地不需要事先切换至指定分支 )
方式2
$ git pull --set-upstream origin dev_1
(备注:本地要切换至指定分支,再执行设置)
再次查看 远程远程仓库信息 git pull 本地时,本地dev_1 已经和远程 仓库的 dev_1关联上了
关联上之后切换至 dev_1 f分支 ,直接执行 git pull,就可以正常拉取远程仓库dev_1 代码到本地仓库了
设置git push 关联
Local refs configured for 'git push'(执行git push 的时候 可以 直接推送到远程仓库的指定分支 ,比如当前本地分支 是dev ,执行git push 的时候 ,就可以直接推送本地dev分支到远程仓库的 dev分支, 而不用手动指定分支)
dev pushes to dev (up to date)
dev_2 pushes to dev_2 (up to date)
main pushes to main (up to date)
push 的时候 设置关联 git push --set-upstream origin dev