Git必知必会-常用命令和实战演练

掌握git常用命令,轻松应付日常开发,下面将从Git基本概念、分支操作、远程操作、实战演练这几个方面进行叙述。

Git基本概念

内容状态

工作区:本地存放项目代码的位置
暂存区:存放临时代码的位置
提交区:存放数据的位置,位于.git目录下
远程仓库:托管代码的服务器
在这里插入图片描述

文件状态

在这里插入图片描述

1. 未跟踪(untrack)

Untracked是还没有记录,还没有登记,未加入到git库中,不参与版本控制。通过git add添加后,状态变为staged。

在这里插入图片描述

2. 未修改(unmodify)

文件已入库但是还未修改,版本库中的文件快照内容与文件夹中完全一致。
若通过git rm移出库后,文件状态变为unstack。

3. 文件已修改(committed)

文件已修改,但是未做其他的操作

4. 暂存状态(staged)

执行git commit命令,将修改同步到库中。
只有通过命令git commit之后,才算是真正把暂存区的代码提交了。经过git commit命令之后,所有被提交的文件的状态就是committed。

Git分支操作

git branch

#创建一个分支
git branch [分支名] 

#显示所有分支信息
git branch -v 

#删除分支
git 删除本地分支:
git branch -d [分支名] 或者git branch -D [分支名]

#删除远程分支:
git push origin -d [分支名]

git checkout

#切换到 分之v1
git checkout [分支名]

#切换到到. 不保留当前的内容
git checkout . 

#恢复到上一个分支
git checkout - 

#拉取远程分支并在本地创建一个新的分支
git checkout -b [本地名] [远程名]
即:git checkout -b dev origin/dev

git reset

将当前分支回退到历史某个版本
git reset --soft HEAD^

--mixed 
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
 
--soft  
不删除工作空间改动代码,撤销commit,不撤销git add . 
 
--hard
删除工作空间改动代码,撤销commit,撤销git add . 

注意完成这个操作后,就恢复到了上一次的commit状态。

git stash

git stash 用来保存目前的工作目录和暂存区状态,并返回到干净的工作空间


1. 使用git stash save "暂存" 将自己修改的代码,进行一个本地仓库的临时缓存。

$ git stash save "暂存"
Saved working directory and index state On master: 暂存

2. 使用git stash list 查看缓存代码片段。

$ git stash list
stash@{0}: On master: 暂存

3. 将我们的修改合并到更新后的代码中,stash@{0} 就是我们自己暂存的标记
$ git stash pop stash@{0}


#恢复和删除
$ git stash apply
$ git stash drop

git rebase

确保两个分支都是最新的代码
在ym_polling上进行rebase,添加到dev分支后面
git rebase -i --onto dev dev

git merge

Git远程操作

克隆远程分支

git clone [git仓库]

查看远程分支


git remote	//查看远程库的信息
git remote -v	//查看远程库的详细信息

关联远程分支

#关联
git remote add origin [远程仓库]

拉取最新代码

git pull
例如:
git pull origin master

#fetch拉取
git fetch
例如:
git fetch origin [远程分支]:[本地分支]
git fetch origin lite:ym_dev

推送本地代码到远程分支

#将本地历史推送到远程
git push 
比如:git push origin dev

#强推
git push --force-with-lease origin dev
git push -f origin dev

实战演练

查看提交记录

查看log
git log --pretty=format:"%h %s"  查看分支记录
git log --pretty=oneline 查看当前提交的日志

git reflog
git log

提交本地代码到远程分支

以本地分支dev提交到远程分支dev为列子

git add . //添加所有修改的代码
git commit -m "first commit"
git push origin dev

将本地新建项目提交到仓库(未创建)

  1. 首先写好本地项目
  2. 在远程创建好仓库
  3. 执行如下命令行
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/miaoyang/catcodeme.git
git push -u origin main

临时切换分支修改代码

  1. 暂存本地代码
  2. 切换到其他分支,修改代码,完成提交
  3. 切换到原来分支,恢复暂存的内容

假如你正在个人分支ym_feature开发新功能,突然需切换到ym_dev分支去修复一个bug

1.暂存代码
git stash

2.切换分支
git checkout ym_dev
...修改N行代码后...提交代码
git add .
git commit -m "fix bug"
git push origin ym_dev

3.切换到原来的分支
git checkout ym_feature
git stash pop

解决合并冲突

在使用git协同开发时,难免会出现不同的人员,同时修改某个文件导致代码冲突的问题。
这时候我们提交代码前,应该首先获取远程最新版本,与本地版本合并。回到代码中解决冲突,再做提交。

比如ym_feature分支合并到ym_dev分支,产生合并冲突。合并代码后,手动解决冲突问题。

#切换到当前分支
git checkout ym_dev

#合并新功能分支到ym_dev上
git merge ym_feature

撤销和修改commit

git add . //添加所有文件
git commit -m "first commit"

撤销commit:

git reset --soft HEAD^

修改commit:
amend修正,会对最新一条 commit 进行修正,会把当前 commit 里的内容和暂存区(stageing area)里的内容合并起来后创建一个新的 commit,用这个新的 commit 把当前 commit 替换掉。

git commit --amend

注意:

IDEA集成的git,采用界面操作也是个不错的选择,不用记住辣么多的命令,可视化合并代码,非常的人性化。
在这里插入图片描述


欢迎大家关注个人微信公众号:一杯Java不加糖呢,不定期更新文章,谢谢🙏~
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值