你好,我是萝卜,实习或者刚入职的时候公司代码协作需要使用到Git,而我还没有接触过怎么办?本文带你快速入门Git操作,助你快速掌握Git的使用
git工作流程
Workspace:工作区——>本地写代码的地方
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
![](https://img-blog.csdnimg.cn/img_convert/d1913621c26d6a6ebcd9217206baecdf.png)
分支命名规范及其意义
master:主分支(线上环境)
develop 或 dev:开发分支(测试环境)
feature/xxx:个人分支(在这块写自己的代码)
查看分支
查看当前分支
git branch
查看所有分支(包括远端分支)以及自己当前所在的分支
git branch -a
创建分支方法一:创建分支并推送远程
流程:本地创建分支 —— 推送新分支到远程
在本地创建分支
git branch 分支名
查看当前分支
git branch
查看所有分支以及自己当前所在的分支
git branch -a
推送新分支到远程
git push --set-upstream origin 分支名
创建分支方法二:从远端master拉取新分支
本地切换到master分支
git checkout master //master:主分支
拉取远端master最新代码
git pull
创建并切换到新分支
git checkout -b 新分支名称
//例:git checkout -b feature/lsz
推送新分支到远端仓库
git push origin 新分支名称
//例:git push origin feature/lsz
将本地当前仓库关联远端仓库
git branch --set-upstream-to=origin/新分支名称
//例:git branch --set-upstream-to=origin/feature/lsz
切换分支
git checkout 分支名
删除分支
删除本地分支
git branch -d 分支名
删除远程分支
git push origin -d 分支名
修改用户名、邮箱和密码
git config --global --replace-all user.name "修改后的用户名"
git config --global --replace-all user.email"修改后的邮箱"
git config --global --replace-all user.password "修改后的密码"
查看修改完后的用户名:
git config user.name
查看修改完后的邮箱:
git config user.email
查看修改完后的密码:
git config user.password
拉取其他分支的代码合并到当前分支
git merge XXX(分支名)
//例:git merge origin/master //指的就是将远端 master分支与本地的当前分支进行合并
新项目创建本地仓库到推送至远程仓库指定分支完整步骤
初始化项目
git init
建立本地仓库和远程仓库的连接
git remote add origin 远程仓库URL
将远端上的仓库pull到本地
git pull origin 分支名称
创建并切换分支,这里和远程仓库的分支要一致(选择指定推送的分支,使用git branch可以查看分支)
git checkout -b 分支名称
将文件加载到暂存区(如果add错了可以使用git rm --cached 文件名 删除添加的文件)
git add .
将文件提交到本地仓库(-m 为描述信息)
git commit-m "Initial commit"
//例:git commit-m "用户登录功能"
将本地仓库推送到远程仓库
git push origin 分支名称
推送到远端develop分支步骤
在自己的分支先进行提交代码三部曲
git add .
git commit -m "xxx"
git push (如果没有与远端建立连接则需要git push origin 当前分支名)
切换到本地develop分支
git checkout develop
拉取远端develop分支最新代码
git pull
合并自己的分支
git merge xxx
//例:git merge feature/lsz
解决合并冲突(vscode上手动解决)
合并冲突原则
谁冲突谁处理
不要删掉别人的代码
不要把别人开发中的代码合并到自己的分支
提交代码三部曲完成develop分支代码提交
git add .
git commit -m "xxx"
git push (如果没有与远端建立连接则需要git push origin 当前分支名)
推送到远端master主分支
不从develop分支上直接推送到master上
从自己的分支上发起合并请求,合并到远程master分支
git日志(查看git提交记录)
git log如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值(commit id),作者、提交日期、和提交说明。如果记录过多,则按Page Up、Page Down、↓、↑来控制显示;按Q退出历史记录列表
git log
//结果:
/*
commit 44fb27f9532778cbb1e14867696d6cd67c2d4005 (HEAD -> develop, origin/develop)
Merge:276f1cc 167a77b
Author: user
Date: Mon Dec 1213:53:002022 +0800
Merge branch 'feature/lsz' into develop
(以下省略更多记录)
*/
git版本回退
方法:reset复位、revert恢复
方法一:reset
不是很推荐,通过reset的方式,把head指针指向之前的某次提交,reset之后,后面的版本就找不到了
git reset --hard (commit id)
reset回退操作步骤
使用git log查找到所需要回退到的版本号,即提交记录的commit id;例如下图中黄色字段
![](https://img-blog.csdnimg.cn/img_convert/366831bd7be5ee20b769e71f7b0aad40.png)
执行前,先将本地代码切换到对应分支
如果你现在feature/xxx分支上,需要回退develop分支上的版本,则需要先切换到develop分支上
执行命令
git reset --hard (commit id)
例如:
git reset --hard576223db1ee100a79b4f82d6713cef700d723018
(如果远程分支也需要回退到当前版本)强制push到对应的远程分支git push -f -u origin master或者git push -f,此时如果用git push会报错,因为我们本地库HEAD指向的版本比远程库的要旧
方法二:revert(推荐)
这种方式比较推荐,这种方式不会把版本往前回退,而是生成一个新的版本。
所以,你只需要让别人更新一下代码就可以了,你之前操作的提交记录也会被保留下来。
git revert -n (commit id)
revert回退操作步骤:
使用git log查找到所需要回退到的版本号,即提交记录的commit id
在客户端执行如下命令
git revert -n (commit id)
(如果远端分支也需要进行回退)执行以下指令,提交代码
git commit-m '版本回退'
(如果远端分支也需要进行回退)同步推送到远程仓库
git push
恢复回退
回退完之后发现不需要回退了,刚才那些消失的代码又要重新恢复,和回退版本同理
通过git reflog查看本地的操作历史,找到对应的commit id
再使用git reset --hard commit id就回到之前的操作了