git常见操作汇总

这篇具有很好参考价值的文章主要介绍了git常见操作汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

存档,方便本人查询~

除了add、commit、push、pull外有些操作也是需要掌握的~在复习之前先准备一下需要的项目:

mkdir git-demo1
cd git-demo1
git init

基础操作

# 在工作区新增一个README.md文件,并写入 # Hello World

# 查看哪些原件做了修改(或者未提交到本地仓库)
git status

# 将全部文件加入暂存区(也可以指定某个文件)
git add .

# 将暂存区域的文件提交到本地仓库
git commit -m "feat: add README.md"

# 添加远程仓库
git remote add origin https://xxx/git-demo.git

# 将本地仓库的修改推送到远程仓库(这里的前提是添加了远程仓库~)
git push -u origin "master"

分支管理

# 从当前分支新建分支并切换到该分支(master -> feature/test1)
git branch feature/test1

# 查看当前所在的分支(也会列出所有分支),现在在master分支
git branch

# 再次新建一个分支并【切换】到该分支(mater -> feature/test2)
git checkout -b feature/test2

# 查看当前所在的分支,现在在feature/test2分支
git branch

# 查看本地分支和远程分支
git branch -a

# 切换分支回到master
git checkout master

# 删除feature/test1分支(若当前在feature/test1分支,则无法删除所在分支)
git branch -D feature/test1


进阶操作

拉取代码git pull -p

# 现阶段有两个分支 master和feature/test2
git branch

# 切换到feature/test2分支并推送到远程仓库
git checkout feature/test2
git push --set-upstream origin feature/test2

git chekcout master
git checkout -b feature/test1
git push --set-upstream origin feature/test1

git checkout master
# 这时候我们的远程仓库有三个分支,先在网页上删除feature/test1
# 拉取远程仓库代码,当前的分支,并不会删除feature/test1
git pull
# 查看本地分支和远程分支
git branch -a
# 结果如下
# feature/test1
# feature/test2
# * master
# remotes/origin/feature/test1
# remotes/origin/feature/test2
# remotes/origin/master

# 如果我们在git pull -p的话,会发现同步了远程仓库删除操作
git pull -p
git branch -a
# 结果如下
# feature/test1
# feature/test2
# * master
# remotes/origin/feature/test2
# remotes/origin/master

git常见操作汇总,学习记录,git

git常见操作汇总,学习记录,git

暂存文件git stash

# 切换到 feature/test1分支
git checkout feature/test1
# 新增一个index.html文件,内容随意发挥
git add .
git commit -m "feat: add index.html"
git push

# 切换到 feature/test2分支
git checkout feature/test2
# 新增一个index2.html文件,内容随意发挥
git add .
git commit -m "feat: add index2.html"
git push


# 假设你现在还在feature/test2开发某个功能,需要临时切分支到feature/test1修复一些东西
# 如果这时候 git checkout feature/test1 是会报错的
# 因为你在feature/test2上的内容没有提交
# 这时候你可以选择提交代码,然后切换
# 如果你不想提交代码,又想要切分支的话,可以试试 git stash
git stash save "未完成的功能"
# 也可以直接
git stash 
# 这时候你就可以去test1开发啦,然后回到test2的时候执行

# 查看暂存的记录
git stash list
# stash@{0}: On test2: 未完成的功能

# 使用 git stash apply --index $num,它不会删除暂存记录
# 使用的是最新一次的暂存记录
git stash apply 
# 或者根据序号使用某次暂存,比如这次它是0
git stash apply --index 0
# 这时候的记录里就还有我们暂存的那一条

# 查看暂存的记录
git stash list

# 或者使用git stash pop 使用最近一次暂存的修改并删除
git stash pop
# 查看暂存的记录
git stash list
# 这时候的记录里就没有我们暂存的那一条了

撤销修改

# 如果我们修改了某个文件,且还没添加到暂存区,那么撤销的操作为:
git checkout -- index2.html
# 如果是多文件:
git checkout -- index2.html README.md

撤销git add之后的代码

# 在feature/test2我们修改了index2.html
git add .
# 如果想要撤销的话执行
git reset index2.html

撤销git commit之后的代码

撤销全部
# 先查看log
git log

# 这时候我有三条提交记录
# commit 0f46b36b4a6bc0082aa705f51897616d3d661daa (HEAD -> feature/test2)
# commit d598f45b535daf020f9eec9a152f494965f0eedc (origin/feature/test2)
# commit 500cd99aae50ff91b955b14099dbc9f6f2176e75

# 这时候我想回退到d598f45b535daf020f9eec9a152f494965f0eedc 那么可以使用
git reset --hard  d598f45b535daf020f9eec9a152f494965f0eedc

# 这样再次执行git log就只有两条记录了,且之前修改的代码已经不见了
# 如果你想更新远程代码 需要执行 git push -f
只撤销自己的
# 上述撤销操作 适用于一个人开发的时候,多人开发的时候是不行的
# 假设当前的记录是 你提交了(1),A提交了一次(2),你提交了(3),A提交了一次(4)
# 这时候如果你想删除3,如果执行git reset的话,那么4的记录也会被删除

# 先假装我是2个人开发
# 我在index1.html开发,A在index2.html开发
# 新增内容<p>我第一次开发</p>
git add .
git commit -m "feat: 我第一次开发"

# 新增内容<p> A第一次开发</p>
git add .
git commit -m "feat: A第一次开发"

# 新增内容<p>我第二次开发</p>
git add .
git commit -m "feat: 我第二次开发"

# 新增内容<p>A第二次开发</p>
git add .
git commit -m "feat: A第二次开发"

# 查看日志
git log
# 50c11d768673a0309fad28a2383b188ec19c13a7 feat: A第二次开发
# d3baef3ebeb198b9bbed89c071bc72fc71228010 feat: 我第二次开发
# 375a73f6900bc40967089e5e83f4d3a73d6e70e8 feat: A第一次开发
# f1ec3a4f803a6c6604245e33e8ec2bf2dc9b30cc feat: 我第一次开发

# 这时候我们想要删除自己的第二次开发,那么可以借助 git revert
git revert d3baef3ebeb198b9bbed89c071bc72fc71228010
# 也可以是 git revert d3baef3ebeb198b9bbed89c071bc72fc71228010 -m ”feat: revert xxx“
# 这时候你会发现 index1.html中的代码只有<p>我第一次开发</p>
# git log中会出现revert信息


# 实际情况中 git revert还是会有冲突的情况,请妥善处理~~

合并commit信息

实际开发过程中有时候会同个功能,修复N次,提交N次代码,每次commit都是"fix: 修复某些bug",借助git rebase可以合并它们:

# <p>修复第一次</p>
git add .
git commit -m "fix: 修复index.html"

# <p>修复第二次</p>
git add .
git commit -m "fix: 修复index.html"

# <p>修复第三次</p>
git add .
git commit -m "fix: 修复index.html"

# git log
# 05237ec91aa44ab78be1cc162c2739a6f1030181 fix: 修复index.html
# b1cd9f47598996e75730e63819fc09c933e45ec5 fix: 修复index.html
# bc8f437103fe7d126bd899025cca65bb44f8b496 fix: 修复index.html
# bcc524fd3e1655725ab12b29571386b85118f221 Revert "feat: 我第二次开发"
# commit f8a8f0ab9e1af8079bca372e8ed5e767a40b8a03  feat: A第二次开发

# 现在要将 Revert "feat: 我第二次开发" 之前的三次 fix: 修复index.html 合并
# 所以取 Revert "feat: 我第二次开发" 的commitid为基准
git rebase -i bcc524fd3e1655725ab12b29571386b85118f221

接下来会出现这样的节面:

pick bc8f437 fix: 修复index.html
pick b1cd9f4 fix: 修复index.html
pick 05237ec fix: 修复index.html

# Rebase bcc524f..05237ec onto bcc524f (3 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit's
# .       message (or the oneline, if no original merge commit was
# .       specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.

按下键盘上的insert进入编辑模式,然后对信息进行删除,最后结果为:

pick bc8f437 fix: 修复index.html

# Rebase bcc524f..05237ec onto bcc524f (3 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit's
# .       message (or the oneline, if no original merge commit was
# .       specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#

编辑完之后按下ESC键推出编辑模式,按下:wq+enter保存并退出,查看记录:

bc8f437103fe7d126bd899025cca65bb44f8b496 fix: 修复index.html
bcc524fd3e1655725ab12b29571386b85118f221 Revert "feat: 我第二次开发"

commit已经合并~

Sourcetree

如果不喜欢用命令行,就用Sourcetree把~

使用方法参考:git 可视化工具Sourcetree使用全攻略(包括各种git冲突解决)文章来源地址https://www.toymoban.com/news/detail-516078.html

到了这里,关于git常见操作汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mysql系列 - 第4天:DDL常见操作汇总

    这是Mysql系列第4篇。 环境:mysql5.7.25,cmd命令中进行演示。 DDL:Data Define Language数据定义语言,主要用来对数据库、表进行一些管理操作。 如:建库、删库、建表、修改表、删除表、对列的增删改等等。 文中涉及到的语法用[]包含的内容属于可选项,下面做详细说明。 库的

    2024年02月11日
    浏览(38)
  • git常用操作汇总

    git init git add xxx git checkout -b 新分支名 -b 指令包含 切换 和 创建 。 如果切换到 已存在 的分支,直接使用 git checout 分支名 即可。 git remote add origin “https:xxxxx.git” git push --set-upstream origin 远程git分支名 在设定 新分支 后, 首次 推送代码,需要使用上述命令。 如果之前已经使

    2024年02月16日
    浏览(38)
  • Git常见问题与使用实际问题记录。

    git stash 是 Git 版本控制系统提供的一个命令,用于临时保存当前工作目录的修改。当您在进行代码开发时,可能会遇到需要暂时切换到其他分支或处理其他任务的情况,但又不想提交当前的修改。这时,您可以使用 git stash 命令来保存这些修改,以便稍后恢复并继续工作。

    2024年02月04日
    浏览(61)
  • 深度学习常见模型大小汇总(持续更新...)

    本篇博客将记录深度学习领域常见模型的大小,具体算法如下 模型可能来自于PyTorch官方,HuggingFace等。 如有错误或者建议欢迎在评论区指出。 第三方库 版本 transformers 4.30.2 PyTorch 2.0.1 Encoder-Only架构 模型 来源 总参数量 总参数量 BERT-base HuggingFace 109,482,240 109.5M BERT-large Huggin

    2024年02月13日
    浏览(43)
  • Git 操作以及Git 常见问题

    git 教程:https://www.runoob.com/git/git-tutorial.html 工作区 :克隆项目到本地后,项目所在的文件夹; 暂存区 :从工作区添加上来的变更(新增,修改,删除)的文件 执行 git add 命令后,将工作区的文件添加到暂存区; 本地仓库 :用于存储本地工作区和暂存区提交上来的变更(新

    2024年02月21日
    浏览(42)
  • git常见操作命令

    在安装完成 Git 后,开始正式使用前,是需要有一些全局设置的,如用户名、邮箱。 查看配置:git config -l 查看目录结构中,就可以看到包含有  .git  子目录,这就说明创建版本库成功 相当于idea中的 vcs----create git repository 2.2.1将文件添加到暂存区 相当于idea中的git -- add(ctr

    2024年02月03日
    浏览(43)
  • 常见的git操作

    git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am \\\"init\\\" 提交并且加注释 git remote add origin git@192.168.1.119:ndshow git push origin master 将文件给推到服务器上 git remote show origin 显示远程库origin里的资源

    2024年02月05日
    浏览(32)
  • git常见操作

    查看本地分支 查看远程分支 查看本地和远程分支  使用以下命令创建一个本地分支 使用以下命令创建一个本地分支且新建分支从特定分支拉取代码 使用以下命令创建一个本地分支且新建分支基于某次提交创建   使用以下命令创建一个本地分支并切换到该分支上: 使用以下

    2024年02月14日
    浏览(33)
  • git分支常见操作

    查看本地分支 查看远程分支 查看本地和远程分支  使用以下命令创建一个本地分支 使用以下命令创建一个本地分支且新建分支从特定分支拉取代码 使用以下命令创建一个本地分支且新建分支基于某次提交创建   使用以下命令创建一个本地分支并切换到该分支上: 使用以下

    2024年02月14日
    浏览(28)
  • Git常见的操作场景

    作为程序员,git应该属于必须掌握技能之一,及时作为非程序员,掌握git对自己的工作也有很大的帮助。尽管在工作中有诸如 TortoiseGit,SourceTree这样强大的客户端工具,使得git操作代码合并等变的很方便。但找工作面试和一些需彰显个人实力的场景,仍然需要我们掌握足够多

    2024年02月03日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包