从零开始的Git
完全小白的Git操作笔记,备忘使用
代码块的注释缩进太奇怪了,先凑活看😡
初始化配置
git config --global user.name "xxx"
git config --global user.email xxx@xxx.com
git config --global credential.helper store
git config --global --list
分别为:设置用户名,设置邮箱,保存用户名密码,查看配置内容
新建仓库-Repository
git init
仓库,其实就是一个目录,一个文件夹,在某个目录下使用该指令即可使该目录变为仓库。创建成功后目录下就会生成一个.git
文件。
当然在某个目录下使用git init xxx
,就会在该目录下生成对应的xxx
文件夹,该文件夹就是新仓库了。
git clone xxx.git
另一种创建仓库就是克隆远程仓库了,该指令会克隆仓库到当前目录下。
添加和提交文件
git add 文件名
该命令将对应的文件添加进暂存区,等待后续提交。
当然,如果想要添加该目录下所有文件,使用git add .
即可
另外,使用通配符也是可以的。例如,git add *.txt
就是将该目录下的所有txt文件添加进暂存区。
git commit 文件名 -m "备注" #暂存区的某个文件提交
git commit -m "备注" #暂存区全部提交
git commit -a #修改文件后,完成暂存和提交动作
该命令将对应文件进行提交。值得一提的是,这只会提交暂存区的文件。
git log
git log --online
以上命令是查看仓库提交日志的,第二条为简洁日志。
回退版本
git reset --soft 版本号/HEAD^
该回退命令会回退到你想要的版本号,但不改变你的工作区和暂存区的文件,也就是说下次想要提交文件时,只需git add xxx
即可。
另外HEAD^
指向的是头部版本号,也就是你最近的一次提交版本号。
当然了,想要查看版本号就用上面说的git log
就好。
git reset --mixed 版本号/HEAD^
该命令回退后会保存工作区文件,但暂存区文件则会删除,即下次想要提交该文件时,需要先git add xxx
后再提交。
这也是reset
的默认操作。
git reset hard 版本号/HEAD^
HEAD^指令指的是最近一次提交。手懒,写的不规范。
该命令回退后,工作区暂存区的文件都会删除。
git reflog
git的所有操作其实都是可以回退的,这也就可以避免误操作。
使用上面的指令可以看到操作记录,每条记录前面都会有一个版本号,使用上面的几个回退命令回退即可一般用hard。
查看差异
git diff #工作区与暂存区
git diff HEAD #工作区与版本库
git diff --cached #暂存区与版本库
git diff 版本1 版本2 #版本间
git diff HEAD~ HEAD #上版本与当前版本
git diff HEAD~2 HEAD #提交前的第二个版本与当前版本
查看差异默认比较工作区和暂存区的内容。
删除文件
值得一提的是,如果单纯的先从工作区中删除的文件,暂存区的文件是不会删除的,之后要git add
,将暂存区对应的文件也删除。
所以就有了如下指令
git rm 文件名 #工作区暂存区都删除
git rm --cached #只删除版本库
而该指令则可以将工作区和暂存区的对应文件都删除。
忽略文件
在.gitignore文件中添加文件名即可。
跟正则相似,但难记,随用随查吧
本地仓库与远程仓库
git remote add origin xxx.git #对应本地与远程origin(别名)仓库
git branch -M main #指定本地分支名称
git push -u origin main:main #本地main分支与远程origin仓库的main分支关联,默认github
git remote -v #查看关联的仓库
上述就是仓库关联,下面的两个指令都不陌生,不过多介绍。
git pull <远程仓库> <远程分支>:<本地分支>
git push -u <远程仓库> <远程分支>:<本地分支>
分支
git branch <分支名>
git branch #查看当前分支,前面带*的那个
git checkout <分支名> #切换分支
git switch <分支名> #切换分支,推荐
上述就是关于分支的创建与切换,实际生产中由于是并行开发的,所以分支经常会使用到。
git merge <被合并的分支>
使用合并命令时,需要先切换分支为合并到的目标分支。
git rebase <目标分支>
该操作会将目标分支合并于基节点,另一分支并接下去。
这个就谨慎使用了吵一架,谁赢了谁是base
解决冲突
merge
合并两个分支时可能会对同一个文件进行操作,出现冲突,手动操作吧。
<<<<<< HEAD
XXXXXX
======
XXXXXX
>>>>>> branch
上面是main分支的,下边是其他分支的,自己斟酌删不删吧。
之后就是git add
和git commit
完成合并了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?