Git笔记
配置用户
git config --global user.name XXX // 配置用户名
git config --global user.email XXX // 配置用户邮箱
git config --global credential.helper store // 长期存储密码
git config --global --list // 查看已设配置
创建仓库
git init [仓库名称]// 初始化仓库
git clone [地址] // 克隆已有的仓库
ls // 查看文件夹
ls -a // 查看隐藏的文件夹
工作区、暂存区、存储区
工作区(Working Dirctory)就是.git所在的目录。暂存区(Staging Area/index)就是一个暂存的区域。最后的本地仓库才是我们需要最后存储起来的代码。
Git文件的四种状态
git status // 查看仓库状态
- 未跟踪 (Untrack)
- 未修改(Unmodified)
- 已修改 (Modified)
- 已暂存 (Staged)
文件操作
git add [文件名] // 添加到暂存区 .表示当前目录下全部的文件
git rm --cached [文件名] // 从暂存区取出
git commit -m 提交信息 // 需要先添加到暂存区才可以提交
查看提交日志
git log
回退版本
git reset // 回退,有三种参数, 后面跟版本号
git reset --soft // 回退到某个版本,不丢弃工作区和暂存区的所有内容
git reset --hard // 丢弃工作区和暂存区的所有内容
git reset --mixed // 丢弃暂存区,不丢弃工作区
比较版本差异
git diff // 查看工作区、暂存区和仓库的差异
git diff HEAD~ HEAD // 比较当前版本和上一个版本的差异
删除文件
git rm [文件名] // 将文件从工作区和暂存区同时删除
git rm --cached [文件名] // 将文件从暂存区删除,但仍保留在工作区
git rm -r* // 递归删除某个目录下所有子目录和文件,删除完了也要提交
忽略文件
在.gitignore文件中可以写上需要忽略的内容。
touch .gitignore
推送本地仓库的修改到远程仓库
将本地仓库和远程仓库关联起来
本地已有的仓库
git init
git add README.md
git commit -m 'first commit'
git branch -M main
git remote add origin git@github.comXXXX
git push -u origin main // 将本地的main分支与远程仓库的main分支关联起来进行推送
添加到已有的仓库在
git remote add origin git@hub.comXXX
git branch -M main
git push -u origin main
git clone repo-address // 克隆远程仓库
git push <remote> <branch> // 推动本地文件到远程仓库
git pull <remote> // 拉取远程仓库的更新
创建新分支
git branch 分支名
git checkout 分支名 // 切换分支
git switch 分支名 // 切换分支
git merge 分支名 // 将分支合并到当前分支
git branch -d 分支名 // 删除分支,这个分支需要被合并后才能删除
git branch -D 分支名 // 强制删除分支
解决合并冲突
解决方案手动修改冲突文件,合并冲突内容。
添加暂存区
提交修改
终止合并
git merge --abort
rebase 重新根节点
假如有两个分支,main和dev。当前位于main分支上。执行merge,将dev嫁接到main分支上。
假如执行rebase,会将main分支嫁接到dev分支上。
git rebase dev