当前位置: 首页 > article >正文

learngit git常用指令

learngit & git常用指令

目录

  • learngit & git常用指令
    • 1.add && commit
    • 2.status && diff
    • 3.log && reset && reflog
    • 4.Repositoty(版本库)
    • 5.checkout
    • 6.rm
    • 7.github(push && rm)
    • 8.clone
    • 9.branch && switch && merge
    • 10. --no-ff选项
    • 11.bug分支
    • 12.branch -D
    • 13.合作
    • 14.rebase
    • 15.tag
    • 16.fork
  • git的尽头是SourceTree

1.add && commit

git add readme.txt
git commit -m "the 1st version"

2.status && diff

git status #查看git目前在哪一个branch上,以及该branch的状态
git diff readme.txt #查看文件的变化

3.log && reset && reflog

git log
git log --pretty=oneline #可以看到每一个版本的id
git reset --hard HEAD^ #HEAD~10,往上数10个版本
#hard选项表明,这是回退到上个版本已经提交的状态
#当然也可以通过版本id恢复
不幸的是,你已经关闭终端...

在git中,总是有后悔药可以吃的。 ---廖雪峰
git reflog #追溯你的每一步动作

4.Repositoty(版本库)

在这里插入图片描述

git 的优越性就在于其对每次修改的追踪而不是对每一个文件的追踪
换言之,一个文件的所有状态都可以被 git 感知,而不是只在乎当前的状态

5.checkout

git checkout -- readme.txt #修改之后没有再add的情况
git reset HEAD readme.txt #将当前缓存区的readme.txt文件舍弃到工作区
#适用于已经add的情况

6.rm

git rm <file>#在工作区删除文件后 
该命令等价于 git add <file>
git commit -m "delete sth." #难道是修改版本库的日志吗?

7.github(push && rm)

git remote add origin git@github.com:michaelliao/learngit.git
git branch -M main #分支改名
git push origin main #推送
git remote rm origin
#还有查看远程仓库信息,分支等等,文ai就对了

git的服务器仓库

  • 下载此电脑的ssh

  • 进入git bash

     ssh-keygen -t rsa -b 4096 -C "your_email@xx.com"
     cat ~/.ssh/id_rsa.pub
    
  • 点击主页GitHub头像->settings->SSH and GPG keys(左侧)->将id_rsa.pub的内容添加进去即可

  • create new repo.

  • 根据提示,选择将已有的仓库与之关联(第二种,第一种笨人也没搞懂是在干嘛)

设置双向仓库 √

如果一切顺利的话...

8.clone

git clone git@github.com:user_name/repository_name.git
#在code -> local中查看

9.branch && switch && merge

git branch <name>
git switch <name>
git switch -c <name> #创建并切换
git merge <name> #合并某个分支到当前分支
git branch -d <name> #删除分支

遇到同一文件在不同分支上被反复提交,注意手动修改

10. --no-ff选项

保留dev指针及其单独指向的文件

git merge --no-ff -m "merge with on-ff" dev

11.bug分支

git stash #暂时移走工作区中不能commit的内容
git switch -c issue-101 #创建分支修bug
git add bug.txt
git commit -m "fix the bug"
git switch main
git merge issue-101
git stash pop #恢复现场

12.branch -D

git branch -D <name> #强行删除未合并的分支

13.合作

git clone git@github.com:user_name/repository_name.git
git checkout -b dev origin/dev
git branch --set-upstream-to=origin/dev dev #将本地分支与远程分支建立联系
git pull #手动合并

14.rebase

变直

15.tag

git tag <tagname> #用于新建一个标签,默认为HEAD,也可以指定一个commit id;
git tag -a <tagname> -m "blablabla..." #可以指定标签信息;
git tag #可以查看所有标签。

git push origin <tagname> #可以推送一个本地标签;
git push origin --tags #可以推送全部未推送过的本地标签;
git tag -d <tagname> #可以删除一个本地标签;
git push origin :refs/tags/<tagname> #可以删除一个远程标签

16.fork

fork -> clone -> pull request(maybe)

git的尽头是SourceTree

移步Sourcetree | Free Git GUI for Mac and Windows


http://www.kler.cn/a/550409.html

相关文章:

  • 并发编程 - 线程同步(八)之自旋锁SpinLock
  • 【ProtoBuf】文件编写及序列化
  • 事件传递和监控
  • 《Stable Diffusion绘画完全指南:从入门到精通的Prompt设计艺术》-配套代码示例
  • isp专业名词-sensor摄像头没有AEC 功能
  • 解决IDEA报错:java 找不到符号
  • Haskell语言的物联网
  • OlympicArena 论文简介
  • 开发一个音响控制板程序,需要从硬件架构设计、通信协议选择、核心功能实现三个层面进行系统化开发。以下是基于工业级开发流程的实施方案
  • 云平台结合DeepSeek的AI模型优化实践:技术突破与应用革新
  • 【leetcode】200.岛屿数量(DFS入门)
  • 科技云报到:科技普惠潮流渐起,“开源”将带我们走向何方?
  • HTTP协议 (爬虫)
  • docker批量pull/save/load/tag/push镜像shell脚本
  • 【Unity URP】PBR框架下的NPR 角色渲染 以《少女前线2:追放》为例
  • MongoDB索引介绍
  • Visual Studio Code使用ai大模型编成
  • 关于视频去水印的一点尝试
  • [250217] x-cmd 发布 v0.5.3:新增 DeepSeek AI 模型支持及飞书/钉钉群机器人 Webhook 管理
  • centos部署open-webui