自己使用的常用 Git 命令,内容包括 Git 配置、基本操作、切换版本、创建分支、合并分支、提交到远程仓库、高级操作。
一、Git 配置
1. 六行配置
git config --global user.name <名字>
git config --global user.email <邮箱>
git config --global push.default simple
git config --global core.quotepath false
git config --global core.editor "code --wait"
git config --global core.autocrlf input
2. 查看配置
git config --global --list
3. 删除配置
git config --global --unset <配置的名字>
二、基本操作
1. 初始化一个空的 Git 仓库
git init
2. 忽略提交特定的文件(夹)
在目录新建一个 .gitignore 目录,将想要忽略提交的内容添加即可
/index.html
/style.css
3. 提交代码一键三连
- 查看文件处于什么状态
- 将内容从工作目录添加到暂存区
- 将暂存区里的改动提交到本地的版本库
git status
git add .
git commit -m "<字符串>" / git commit -v
三、切换版本
1. 查看版本历史
查看正常迭代的版本历史
git log
优雅的查看提交分支
git log --graph --pretty=oneline --abbrev-commit
所有分支的所有操作记录
git reflog
按 “Q” 回到命令行
2. 切换版本
根据版本号切换版本
git reset --hard <版本号>
切换到上一个版本
git reset --hard HEAD
按 “Q” 回到命令行
四、创建分支
1. 创建一个新分支
创建一个分支
git branch <分支名>
2. 切换分支
git checkout <分支名>
切换到上一个分支
git checkout -
五、合并分支
1. 合并分支
到达你想要保留的那个分支,并确定要合并的分支
git checkout master
git merge x
有冲突解决冲突,打开冲突文件,做优化
查看冲突文件,-sb 让查看界面更简洁
git status -sb
2. 提交代码
git add .
git commit
这里 commit 后面不需要加任何内容,它会自动添加提交的内容
3. 删除原来的无用分支
先查看分支,-d 的意思是 delete
git branch
git branch -d x
六、提交到远程仓库
1. 提交到 GitHub 远程仓库
先新建一个远程仓库,复制粘贴运行以下命令,origin 是给远程仓库取的名字,可以修改的
git remote add origin git@github.com:mcx2020/webpack-demo-1.git
git push -u origin master
push 的杀手锏,强制 push(不要轻易使用)
git push -u origin master -f
2. 提交到码云远程仓库
git remote add gitee git@gitee.com:mcx2020/webpack-demo-1.git
git push gitee gh-pages:master
将本地的 gh-pages 分支提交到远程仓库的 master 分支
3. 查看添加的远程仓库
git remote -v
4. 换仓库提交
提交的时候,如果想换仓库,将 add 改成 set-url
git remote set-url origin git@github.com:mcx2020/webpack-demo-2.git
git push -u origin master
七、拉取远程分支代码
拉取的时候,首先把远程分支与本地分支做一个管理
git branch --set-upstream-to=origin/main master
git pull
七、下载远程仓库
1. 下载代码
别人的代码只能使用 https 下载,自己的代码可是使用 ssh 下载,下载形式有变形。
git clone git@<目标路径>
git clone git@<目标路径> yyy
git clone git@<目标路径> .
八、高级操作
1. 通灵术
将所有未提交的代码隐藏存储起来,再切换分支弹出来
git stash
// 切换一下分支
git stash pop
2. 设置页面预览的脚本
将打包好的 dist 中的文件上传到新的分支进行预览
git branch "gh-pages"
git check-out gh-pages
// 将已经删除源代码的代码提交
git add .
git commit -m "rm source code"
git push --set-upstream origin gh-pages
在 master 分支上做一个脚本
// deploy.sh
yarn build &&
git checkout gh-pages &&
rm -f *.html *.js *.css &&
mv dist/* ./ &&
rm -rf dist;
git add . &&
git commit -m 'update' &&
git push &&
git checkout -
九、一些题目
git clone https://github.com/jirengu/wheels.git 会有什么效果?
A. 会在当前目录下创建一个 wheels 目录
B. 还会在当前目录下创建一个 wheels/.git 目录
C. 还会把 master 分支的最新代码下载到当前目录里的 wheels 目录里
正确答案:A, B, C
以下哪些命令会创建 .git目录
A. git clone
B. git init
C. git pull
D. git fetch
关于git add
与git commit -a
的区别,以下说法正确的是:
A. 对于已提交未修改的文件,文件的编辑、删除都会使其变成已修改状态。可以通过git add
暂存变动,再通过git commit
提交
B. 对于已提交未修改的文件,文件的编辑、删除都会使其变成已修改状态。可以直接通过git commit -a
一次性暂存变动并提交
C. 对于新增的未追踪文件,可以通过git add
来暂存新增变动,之后在git commit
提交
D. 对于新增的未追踪文件,可以通过git commit -a
来暂存新增变动并提交
正确答案:A, B, C
从 Github clone一个仓库到本地。现在需要本地仓库目录删除 readme.md,之后把变动同步到Github。以下操作能达到目的的是:
A. rm readme.md; git add readme.md; git commit -m “删除文件”;
B. rm readme.md; git commit -am “删除文件”;
C. git rm readme.md; git commit -m “删除文件”;
D. rm readme.md; git commit -m “删除文件”;
正确答案:A, B, C
小A在提交代码时不小心把一个用于本地测试的数据库文件 database 一并提交并推送到Github,导致Github源码体积增加几百M。现在他需要在仓库中删除database文件,但本地依然保留该文件(本地开发需要),该如何操作?
A. git rm —cached database; echo database > .gitignore; git add .; git commit -m “delete database”; git push;
B. git rm —cached database; git add .; echo database > .gitignore; git add .; git commit -m “delete database”; git push;
C. git rm -f database; echo database > .gitignore; git add .; git commit -m “delete database”; git push;
「@浪里淘沙的小法师」