【Git操作手册】工作入职不会Git怎么办,一篇文章带你快速上手

374 阅读6分钟

你好,我是萝卜,实习或者刚入职的时候公司代码协作需要使用到Git,而我还没有接触过怎么办?本文带你快速入门Git操作,助你快速掌握Git的使用

git工作流程

Workspace:工作区——>本地写代码的地方

Index / Stage:暂存区

Repository:仓库区(或本地仓库)

Remote:远程仓库

分支命名规范及其意义

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 UpPage Down来控制显示;按Q退出历史记录列表

git log
//结果:
/*
commit 44fb27f9532778cbb1e14867696d6cd67c2d4005 (HEAD -> develop, origin/develop)
Merge: 276f1cc 167a77b
Author: user
Date:   Mon Dec 12 13:53:00 2022 +0800

    Merge branch 'feature/lsz' into develop
(以下省略更多记录)
*/

git版本回退

方法:reset复位、revert恢复

方法一:reset

不是很推荐,通过reset的方式,把head指针指向之前的某次提交,reset之后,后面的版本就找不到了

git reset --hard (commit id)

reset回退操作步骤

  1. 使用git log查找到所需要回退到的版本号,即提交记录的commit id;例如下图中黄色字段

  2. 执行前,先将本地代码切换到对应分支

如果你现在feature/xxx分支上,需要回退develop分支上的版本,则需要先切换到develop分支上

  1. 执行命令
git reset --hard (commit id)
例如:
git reset --hard 576223db1ee100a79b4f82d6713cef700d723018
  1. (如果远程分支也需要回退到当前版本)强制push到对应的远程分支git push -f -u origin master或者git push -f,此时如果用git push会报错,因为我们本地库HEAD指向的版本比远程库的要旧

方法二:revert(推荐)

这种方式比较推荐,这种方式不会把版本往前回退,而是生成一个新的版本。

所以,你只需要让别人更新一下代码就可以了,你之前操作的提交记录也会被保留下来。

git revert -n (commit id)

revert回退操作步骤:

  1. 使用git log查找到所需要回退到的版本号,即提交记录的commit id
  2. 在客户端执行如下命令
git revert -n (commit id)
  1. (如果远端分支也需要进行回退)执行以下指令,提交代码
git commit -m '版本回退'
  1. (如果远端分支也需要进行回退)同步推送到远程仓库
git push

恢复回退

回退完之后发现不需要回退了,刚才那些消失的代码又要重新恢复,和回退版本同理

  1. 通过git reflog查看本地的操作历史,找到对应的commit id
  2. 再使用git reset --hard commit id就回到之前的操作了