整理一下 Git 的常用操作
基础配置
设置用户信息
git config --global user.email "1347250406@qq.com"
git config --global user.name "Cuff"创建仓库
git init // 1、初始化当前项目为 git 仓库
cd xxx // 切换到某个文件夹下
git init 仓库名称 // 2、新建一个文件夹并将该文件夹初始化为一个 git 仓库清除登录信息
git config --global credential.helper wincred
git credential-manager remove | uninstall //清除登录的账号信息
git config --system --unset credential.helper提交代码
把工作区文件提交到暂存区
git add 文件或文件夹名称 // 将具体某一文件或文件夹添加到暂存区
git add -u // 将文件的修改、删除,添加到暂存区
git add . // 将文件的修改、新建,添加到暂存区
git add -A // 将文件的修改、删除、新建,添加到暂存区把暂存区文件提交到版本库中进行版本追踪
git commit -m"提交信息" // 提交暂存区文件到版本库中
git commit --amend // 修改最近提交的 commit message 信息远程仓库
备份到远程仓库
git remote add 远程仓库地址 // 把本地仓库备份到,建立了桥梁
git push // 推送过去
从远程仓库备份代码到本地 git clonegit clone xxx //拉取master
git clone -b xxx //拉取 xxx 分支的代码 -b 是 branch 分支的意思更新代码
git pull // 将本地仓库和远程仓库更新为远程仓库的最新版本
// 不同人修改仓库中的不同文件或相同文件不同区域可以直接合并解决
git fetch // 下载远程仓库内容到远程仓库副本
git merge // 更新合并本地仓库和远程仓库副本内容为远程仓库代码
// 不同人修改仓库中的相同文件相同区域需要手动解决冲突后 commitcommit 操作
查看当前 commit 的文件结构
git cat-file -p commit版本号 // 查看 commit 记录的快照信息修改 commit 的描述信息
git rebase -i 要变更的commit版本号 // 变基,修改以往 commit 的 message 信息1、变基后出现如下弹窗,修改版本号前面对应的命令,pick -> reword
2、输入要修改 commit 信息,保存
3、查看历史,修改成功
合并连续的多个 commit
git rebase -i 要合并到最早commit版本号 // 合并版本号 message1、变基出现出现如下弹窗,修改第二行要合并到最早的 commit 版本前面的命令为 squash
2、输入合并信息,保存
3、查看历史,合并成功
合并不连续的多个 commit
git rebase -i commit版本号1、变基之后再弹窗中添加不连续的 commit 版本号 , 除了第一个策略为 pick,其他修改为 s,如下面 70825e5 对应的就是要合并的不连续的 commit 了
2、输入合并信息,保存
3、查看历史,合并成功
查看版本历史
git log // 查看当前分支的所有历史记录
git log --all // 查看所有分支的历史记录
git log --author="xxx" // 查看某个用户提交所有历史
git log --all --graph // 图形化查看所有分支的所有历史记录
gitk --all // 弹窗可视化查看提交历史
git log -2 //查看最近几条的提交历史后面的数字需要查看的数量分支操作
创建、切换分支
git branch 分支名称 // 创建分支
git checkout 分支名称 // 切换分支
git checkout -b 分支名称 // 创建并切换分支
git checkout commit的hash // 分离头指针,可用做尝试性的提交,不与分支挂钩,在切换分支之后会被清除掉
git branch 分支名称 commit哈希 // 保留分离头指针的变更1、分离头指针,没有基于某个 branch 做变更提交 commit
2、在分离头指针的情况下 commit ,在 git log 中没有相关信息
查看分支信息
git branch -v文件比较
比较 git add 后的暂存区与当前版本库最新版本的区别
git diff --cached比较工作区和暂存区
git diff
git diff -- 文件名
git diff 分支1 分支2 -- 文件名 // 比较不同的分支进行文件比较文件删除
从当前 commit 版本中删除文件
git rm 文件名文件恢复
暂存区文件恢复成 head 一样(把最近 commit 的内容恢复到暂存区)
git reset HEAD // 将暂存区所有文件恢复成 head 的内容
git reset HEAD -- 文件名 // 将暂存区部分文件恢复为 head 中的对应文件将工作区文件恢复成暂存区一样(会把当前工作区某个文件的变更消除掉)
git reset --hard commit版本号恢复前
恢复后
文件暂存
将当前工作区文件暂存到 stash 中
git stash // 将工作区文件暂存
git stash list // 查看暂存列表
git stash apply // 将暂存的内容重新放回工作区,还有保留当前 stash list
git stash pop // 拉出暂存内容并删除暂存列表