Git工作实用实战教程

作为一个新手去用GIT协作开发,肯定是一脸懵逼。
小弟也是众多新人的一位,这不刚刚整懂!刚刚把自己教明白!特此来帮助大家
也建议大家先会用GIT命令,在去使用第三方工具:SourceTree、TortoiseGit、idea自带工具等等。

在这里插入图片描述

Workspace 工作区
Index/Stage 暂存区
Repository 仓库区(或本地仓库)
Remote 远程仓库
这个概念图自己一定要先清楚这四个区

配置ssh教程:https://www.cnblogs.com/hafiz/p/8146324.html

1.拉取远程代码到本地

git  clone  分支名称  分支地址 (http/ssh)

这个命令远程分支拉取到本地仓库

2.更新并合并代码

git  pull origin 分支名称 

3.推送本地代码到远程分支

git  push origin 本地分支:远程分支

4.分支操作

git branch -a                                         查看分支
git branch [branch-name]                     创建分支
git checkout xx分支                             切换分支
拉取基于远程的本地工作分支 $ git checkout -b serverfix origin/develop
做bug修复的时候:$ git checkout -b hotfix_20210107_001origin/master
做新功能的时候:   $ git checkout -b feature_osmk1001_10 origin/develop
更新分支命令:         $ git remote update origin --prune(当你本地和远程分支不同步时刻)
删除本地已合并的分支: git branch -d [branchname] 某些情况下可以用 git branch -D [branchName]
删除远程分支: git push origin --delete [branchname]
根据指定版本号创建分支: git checkout -b branchName commitId
清理本地无效分支(远程已删除本地没删除的分支): git fetch -p
如果分支太多,还可以用此命令进行分支模糊查找: git branch | grep 'branchName'

5.配置

git config --list                                     查看本地配置列表

6.暂存区

什么时候用到暂存区?
两种情况:
1.git在其他分支上改代码 切换到本地分支变掉了
2.或者切换分支提示你去commit或者stash

git stash                                               提交到暂存区
git stash list                                          暂存区列表
git stash pop                                        从暂存区取
git stash drop                                       删除情况暂存区

7.远程或者本地分支合并

例如:我想把远程dev分支合并到远程master
https://blog.csdn.net/qq_42264638/article/details/112571544

git branch -a  查看当前在那个分支

git checkout -b dev  origin/dev      创建切换到dev并拉取远程dev代码

git pull origin dev                           拉取最新dev代码

git checkout master                        切换到主分支

git pull origin master                      拉取最新mater分支代码

git merge origin/dev    or   git merge dev    在master分支上面merge   (xx分支)

git push origin master                       最后把合并完成的master分支 推送到远程master分支

8.Other区别

git revert [commit]
git reset --hard                                    回退到上一个commit之前

reset三种模式区别和使用场景

区别:
--hard:重置位置的同时,直接将 working Tree工作目录、 index 暂存区及 repository 都重置成目标Reset节点的內容,所以效果看起来等同于清空暂存区和工作区。

--soft:重置位置的同时,保留working Tree工作目录和index暂存区的内容,只让repository中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的【差异变更集】会放入index暂存区中(Staged files)。所以效果看起来就是工作目录的内容不变,暂存区原有的内容也不变,只是原节点和Reset节点之间的所有差异都会放到暂存区中。

--mixed(默认):重置位置的同时,只保留Working Tree工作目录的內容,但会将 Index暂存区 和 Repository 中的內容更改和reset目标节点一致,因此原节点和Reset节点之间的【差异变更集】会放入Working Tree工作目录中。所以效果看起来就是原节点和Reset节点之间的所有差异都会放到工作目录中。

git revert 用法

git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
作为一次最新的提交
    * git revert HEAD                  撤销前一次 commit
    * git revert HEAD^               撤销前前一次 commit
    * git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,
版本会递增,不影响之前提交的内容

git revert 和 git reset的区别

1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。 
2. 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。 
3. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

从入门小白到小黑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值