git 的基本使用
- 学习系列,git基本命令记录,开始之前,看下git的工作原理图:
- 基础命令
git init # 创建本地仓库 git status #查看信息 git add 文件名(*) #将代码提交至暂存区 git commit -m '备注信息' #将代码提交到本地仓库 git diff 文件名 #对比文件信息 git log (--pretty=oneline) #查看git日志 git log --graph --pretty=oneline --abbrev-commit #查看详细日志 git reset --hard HEAD^ #回退到上一个版本 git reflog #查看版本号 git reset --hard 版本号 #回退到指定版本号 git checkout -- 文件名 #将文件在工作区所做的操作撤销 git rm 文件名 #将文件删除 相当于git add -A 把所有发送变化的文件提交到暂存区;git commit两步操作 rm -rf 文件名 #强制删除(手工删除) 撤销直接使用git checkout -- 文件名 git mv 旧文件名 新文件名 linux/mac 使用git mv win使用git ren git commit --amend -m "增加信息" # 修改最后一次提交内容 git branch #查看当前分支情况 git branch 分支名 #新建一个分支 git checkout 分支名 #切换到指定分支操作 (指针切换) git checkout -b 新增分支名 # 新增分支并切换到新分支上 git merge 分支名 #将分支内容合并到主分支 git branch -d 分支名 #删除指定分支 git tag # 查看标签 git tag v1.2 #设置标签 git show # 显示标签。 git tag -a 标签名 -m “标签注释信息” # 添加标签并带有注释信息 git tag -a 标签名 -m “标签注释信息” 版本号 # 添加 git cheakout 标签名 :切换到指定标签,此时不位于任何分支,处于游离状态,可以考虑在此标签创建一个分支,脱离游离状态可以checkout 分支名即可 git tag -d #删除标签名 git clean -n #查看没有被跟踪文件 git clean -f #删除没有被跟踪的文件 git remote add origin https://github.com/demo.git # 添加远程仓库,名称为origin(默认) git push -u origin master # 把master分支推送到origin仓库(原仓库) git clone 远程仓库git地址 # 克隆远程仓库到本地 fork /拷贝对方的仓库到自己仓库,修改/增加完成后提交到自己的仓库,推送给对方的仓库使用pull request 进行推送,对方同一后可合并到对方仓库
- 恢复删除在暂存区的文件
1.git reset HEAD 文件名 #恢复暂存区 2.git checkout -- 文件名 #恢复工作区 3.git rm -r --cached 文件名 删除新增到暂存区的文件,再手工删除文件rm -rf +文件名
-
当主分支与其他分支更新冲突时
可以手动解决 将不需要的部分删除或者全部保留,解决后 执行 git add 再执行 git commit -m ""
解决删除分支后还存在历史信息 git merge --no-ff -m '注释' 分支名 -
多人协作产生冲突
方式一:
1、使用gitpull命令把最新的提交拉取下来
2、如果拉取失败一般原因是没有指定本地子分支与远程origin/子分支的链接:可使用该命令gitbranch--set-upstream-to=origin/远程子分支本地子分支
3、此时pull虽然成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样
4、解决完成之后,使用git push提交
方式二:
使用命令gitpush-f 强制提交,该方式会导致远程仓库之前的修改被覆盖,同时提交日志也会被覆盖。 -
常用的操作
git blame filename #查看谁更改了file中的内容、修改时间
设定git不跟踪文件:在工作目前创建一个名为.gitignore的文件,用于过滤数据,便于非需要管理的文件进行过滤,文件内容如下:
/new/ #过滤整个文件夹
*.txt #过滤所有.zip文件
/new/test.c #过滤某个具体文件
.DS_Store #Mac用来存储文件夹信息的文件
npm-debug.log * #npm报错信息文件
git clean:从工作目录中删除没有被git跟踪过的文件,它包含如下参数:
-n提示哪些文件会被删除
-f删除当前目录下所有没有跟踪过的文件.它不会删除
.gitignore文件里面指定的文件夹和文件
-f删除指定目录下所有没有跟踪过的文件
-df删除当前目录下所有没有跟踪过的文件和文件夹
-xf删除当前目录下所有没有跟踪过的文件,包含.gitignore文件中设置的文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2022-04-20 Linux的find基础使用