git基础操作
Git基础
追踪文件
使用 Git 来对现有的项目进行管理,进入该项目目录并输入:
git init
对一个已存在的文件进行版本管理
文件状态
分为四种状态:
Untracked Unmodified Modified staged
用git add 文件 可以让文件进入下一状态
add后再修改文件再commit的话,提交是上去的是最add的文件,而不是最新的文件
基本查看与操作
git diff :
可以查看未暂存的文件更新了哪些部分
git diff --staged:
查看已暂存的将要添加到下次提交里的内容
git status:
查看状态
git status -s:
简洁模式
新添加的未跟踪文件前面有 ?? 标记,新添加到暂存区中的文件前面有 A 标记,修改过的文件前面有 M 标记。出现在右边的 M 表示该文件被修改了但是还没放入暂存区,出现在靠左 边的 M 表示该文件被修改了并放入了暂存区。
忽略文件
忽略不想看到碍眼睛的文件
$ cat .gitignore
*.[oa]
忽略 .o ,.a结尾的,基本符合正则表达式
提交更新
先用 git status看看是否全部暂存了,没暂存用git add暂存,暂存了用git commit提交
git commit -a
暂存加提交
git rm 文件
删除文件,先从暂存区移除,再从未暂存区移除
git rm -f 文件
一次强制删除文件,不可被git恢复
$ git rm log/\*.log
删除所有.log文件
git mv
改名字
git log
查看提交历史
git log -p
显示每次提交差异
git log -2
显示最近两次提交
git log --stat
显示每次提交的简略信息
git log --pretty=online
还有short,full,fuller等
还有format格式化字符串
git log 后面还可以添加很多参数,网上查阅
撤销操作
$ git commit --amend
撤销之前提交的信息并再次提交
git reset 取消暂存的文件
git checkout --file 撤销文件之前的修改
远程仓库的使用
1.查看远程仓库
git remote 查看已经配置的远程仓库服务器
git remote -v 简写
2.添加远程仓库
git remote add <shortname><url>
如果没有远程仓库的信息
使用pb代替
git fetch pb
3.从远程仓库中抓取与拉取
$ git fetch [remote-name]
访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支 的引用,可以随时合并或查看。
git pull
从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支
4.推从到远程仓库
git push [remote-name][branch-name]
例如
$ git push origin master
推送:必须保证,别人没有推从新的文件到仓库中才可以推送成功,也就是要保证你推送的内容是以仓库中的内容为基础的
5.查看某个远程仓库
$ git remote show origin
6.远程仓库的移除与重命名
$ git remote rename pb paul
将pb库改名为paul库
打标签
1.列出标签
$ git tag
2.创建标签
1.附注标签
中包含打标签者的名字、电子 邮件地址、日期时间;还有一个标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证
$ git tag -a v1.4 -m "my version 1.4"
$ git tag
v0.1
v1.3
v1.4
-a加附注标签
-m加附注信息
$ git show v1.4
展示v1.4的信息
2.轻量标签
一个临时的标签,想要保存那些信息用这个标签
创建轻量标签,不需要使用 -a、-s 或 -m 选项,只需要提供标签名字
$ git tag v1.4-lw
运行 git show,你不会看到额外的标签信息。 命令只会显示出提交信息
$ git show v1.4-lw
3.后期打标签
要 在那个提交上打标签,你需要在命令的末尾指定提交的校验和(或部分校验和)
$ git tag -a v1.2 9fceb02
4.共享标签
默认情况下,git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到 共享服务器上
$ git push origin v1.5
用这个才能让别人也看到
$ git push origin --tags
一次性推送很多标签
5.删除标签
git tag -d <tagname>
这个也只是本地的,不能从远程仓库移除这个标签
git push <remote> :refs/tags/<tagname>
6.检出标签
git checkout
用来查看某个标签的文件版本
这会使仓库处于“分离头指针”状态
分离头指针:
如果你做了某些更改然后提交它们,标签不会发生变化,但你的新提交将不属于任何 分支,并且将无法访问,除非确切的提交哈希
有解决方法,暂时无法理解,先不用,避免使用检出标签
Git别名
$ git config --global alias.co checkout
将checkout设置别名为co
Git分支
分支简介
1.分支创建
$ git branch testing
创建了一个testing仓库
$ git log --oneline --decorate
查看信息
2.分支切换
$ git checkout testing
切换到testing中去
分支的新建与合并
1.新建分支
$ git checkout -b iss53
直接切换,是下面的简写
$ git branch iss53
$ git checkout iss53
2.合并分支
$ git checkout master
$ git merge hotfix
在linux分支下合并hotfix分支
3.删除分支
$ git branch -d hotfix
删除hotfix分支
4.遇到冲突时的分支合并
冲突时会显示unmerged
可以手动解决冲突
也可以用图形化工具解决
git mergetool
还有其他方法
分支管理
git branch
得到所有分支的列表
$ git branch -v
查看每一个分支的最后提交
$ git branch --merged
过滤掉已经合并的分支
$ git branch --no-merged
过滤未合并的分支
$ git branch -D testing
强制删除那些合并了的包含还未合并的工作的分支,用-d删除不了
分支开发工作流
稳定再后,不稳定的在前先发展
远程分支
git ls-remote
显示的获得远程引用的完整列表
git remote show (remote)
获得远程分支的更多信息
git clone -obooyah
把远程仓库的名字改成booyah
git fetch origin
从远程仓库中抓取本地没有的数据并更新
git push (remote) (branch)
推送分支
git config --global credential.helper cache
防止每次输入密码
是当抓取到新的远程跟踪分支时,本地不会自动生成一份可编辑的副本(拷贝)
1.跟踪分支
对于跟踪分支使用git pull,Git会自动识别去哪里抓取
git checkout -b [branch] [remotename]/[branch]
创建跟踪分支
$ git branch -vv
查看所有的跟踪分支
2.拉取
git pull
3.删除远程分支
$ git push origin --delete serverfix
删除serverfix分支
变基
1.变基的基础操作
$ git checkout experiment
$ git rebase master
先到experiment分支中去,如何再在master的基础上变基,experiment前移
变基让提交历史更简洁
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现