git常用操作

commit:将代码提交到本地仓库。
push:将本地仓库代码提交到远程仓库

注意:GitHub 或者 gitee 会有上传的文件限制,一定要编写忽略文件。

git管理规范

  1. 开发阶段代码统一推到dev(或者叫develop)分支,演示/发布阶段,再由负责人推到master分支上 (这样可以避免随意推送到master分支,导致演示/发布 出现问题)
  2. 每个人使用自己的dev分支进行开发  比如 dev-自己名字的缩写 比如 dev-srg 用来进行分辨一下是谁的分支
//新建自己分支命令如下   
 git  checkout -b  dev-srg
  1. 每次开发之前先拉一下dev代码 免得冲突了改起来很麻烦
 // 合并dev分支代码命令   
 git merge origin/dev
  1. 开发完毕了想合并到dev分支
// 把自己本地代码推到dev分支的命令   
git push <远程主机名> <本地分支名>:<远程分支名>
// 举例  这样就是把本地的dev-srg 分支代码推到远程的dev分支
git push origin dev-srg:dev
 // 同理  这样就是把本地的dev-srg 分支代码推到远程的master分支
git push origin dev-srg:master 

5、负责人把其他开发者的代码合并到 master分支上

// 本地先切换到主分支
git checkout master
// 合并dev分支代码到主分支  
git merge origin/dev
// 可以 git status 检查一下是否合并成功,是否有冲突。检查没问题,推送代码
git push 或者 git push origin master

git修改本地分支和远程分支名称

  1. 在本地切换到要改名的分支
git checkout oldBranchName
  1. 修改本地分支名称
git branch -m oldBranchName newBranchName
  1. 删除对应的远程分支
git push origin --delete oldBranchName
  1. 推送本地新分支
git push origin newBranchName
  1. 关联本地分支和远程分支
git branch --set-upstream-to origin/newBranchName

git分支操作

分支操作.png
1、从git代码托管平台,创建分支时,会让你选择分支来源,也就是copy来源分支的所有文件到新分支。
2、从git命令行创建分支时,会copy当前分支下的所有文件到新分支,然后改变原分支下的文件,新分支中对应的文件不发生改变,因为已经两个分支了,平行宇宙了,互不影响了。【在本地创建的分支,必须push上去,远程库才会有新建的分支】
3、在本地修改完文件后,推到对应的分支,远程分支中对应的文件也会发生变化,与本地提交时的文件一致。
合并分支【合并某个分支内容到当前分支】

git merge 某个分支[div]

上方图片中,涉及到的 git branch 是只查看本地的分支,如果查看远程的分支,需要写 git branch -a
删除远程库中的指定分支:
1、在git托管平台删除。
2、在git 命令行中 输入

git push {远程remote名称} -d {远程分支名称}
git push origin -d dev

git拉取指定分支上的代码

#【0】git拉取远程代码
git clone  https://xxx.git

#【1】git拉取远程指定分支下代码(-b 分支名称)
git clone -b dev https://xxx.git 

git从版本库中恢复文件

需要恢复的三种情况:

  1. 已修改(或已删除),未add
    1. 由于我们未add,所以暂存区中的数据是之前的,所以直接 git checkout file_path即可恢复
  2. 已修改(或已删除),已add,未commit
    1. add之后,暂存区和工作区中数据一样了,但是仓库中是之前的数据,所以我们需要找到之前提交过的记录,找到仓库中的数据,需要使用 git checkout commitId file_path恢复【表示从某个commit状态中恢复文件到工作区】
    2. 通过git log 查看之前的提交记录,获取到commitId即可
  3. 已修改(或已删除),已commit
    1. 使用 git checkout commitId file_path恢复。就算这次仓库发生变化了,但是我们可以拿到之前提交过的记录恢复。

image.png

git关联多个远程库

# 创建本地与远程库的连接
git remote add gitee https://gitee.com/song-rengang/kob.git
git remote add github https://github.com/song-rengang/kob.git
# 查看本地库的连接
git remote -v

提交push冲突与解决方法

git pull 拉代码的时候,只会把本地库中,没有远程库中的文件拉下来【并且这些文件不是当前用户编写的】,当前用户本地编写的代码不发生变化。

冲突分为两种:
①、提交冲突【提交者的版本库信息 < 远程库 】
解决方法:提交代码前。先 git pull更新本地库,保证本地库中其他用户编写的代码和远程库中的信息一致, 再 git push
②、手动解决冲突【某一块代码没有明确的分工,涉及到多个开发,可能是产生冲突的重灾区】
当多个开发同时对同一块代码做修改提交时,就会产生提交冲突,需要我们手动的做取舍,解决冲突

git日志高级使用

image.png

git 如何撤销commit

此时是我们已经commit提交了代码,提交到本地分支了,代码中是看不到修改的。

在 Git 中,有几种方法可以撤销一个 commit。选择哪种方法取决于你希望如何处理已经提交的更改。以下是一些常见的方法:

1. 使用 git reset

git reset 可以用来撤销最近的一个或多个提交,并且有不同的模式(--soft, --mixed, --hard)来决定如何处理工作目录和暂存区的更改。
示例:撤销最近的提交

git reset HEAD~1

这个命令会撤销最近的一个提交,但保留更改在工作目录和暂存区。你可以根据需要选择保留多少个提交:

git reset HEAD~2  # 撤销最近的两个提交

模式选项

  • --soft: 仅重置 HEAD 到指定的提交,不影响暂存区和工作目录的更改。
  • --mixed(默认): 重置 HEAD 到指定的提交,清空暂存区,但保留工作目录的更改。
  • --hard: 重置 HEAD 到指定的提交,清空暂存区,并丢弃工作目录的所有更改。
git reset --soft HEAD~1  # 仅撤销提交,保留更改在暂存区
git reset --mixed HEAD~1  # 撤销提交并清空暂存区,但保留工作目录的更改
git reset --hard HEAD~1  # 完全撤销提交,清空暂存区,并丢弃工作目录的更改

2. 使用 git revert

git revert 是一种更安全的方式来撤销提交,因为它不会改变提交历史,而是创建一个新的提交来撤销指定的更改。

示例:撤销最近的提交
git revert HEAD

这个命令会创建一个新的提交,撤销最近的提交。如果你需要撤销多个提交,可以指定具体的提交哈希:

git revert <commit-hash>

3. 使用 git commit --amend

如果你只是想修改最近的提交(例如更改提交消息或添加漏掉的文件),可以使用 git commit --amend

示例:修改最近的提交
git commit --amend

这个命令会打开一个文本编辑器,让你修改最近一次提交的提交消息。

4. 处理已经推送的提交

如果你已经将提交推送到远程仓库,并且希望撤销它,你需要首先在本地撤销提交,然后强制推送更改:

示例:撤销并强制推送
git reset HEAD~1  # 撤销本地的提交
git push -f  # 强制推送到远程仓库

注意: 强制推送可能会影响其他开发者的工作,因此需要谨慎使用,最好与团队成员沟通后再执行。
通过这些方法,你可以根据具体情况选择适合的方式来撤销 Git 提交。

git 标签管理

git仓库的fork 和 pr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值