git 学习记录
git 配置
# 用户名/邮箱配置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
# 别名配置
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
创建版本库
git init
初始化 git 仓库。git add <file>
添加文件。git commit [file] -m <message>
提交文件。git status
查看当前仓库状态。
版本回退
git diff [commit_id] -- [file]
查看修改了哪些内容。git log [pretty=oneline]
查看提交日志。git reset --hard <commit_id>
回退到某个版本,版本号不用写全。git reset --hard HEAD^
回退到上个版本,,HEAD为当前版本,HEAD^^上上个版本,HEAD~10 前10个版本。
git reflog
查看历史版本,以便确定要回到未来的哪个版本。
撤销修改
git checkout -- file
丢弃工作区修改,回到最近一次git commit或git add时的状态,前提是未放入暂存区的。git reset HEAD <file>
可以把暂存区的修改撤销掉- 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
- 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了场景1,第二步按场景1操作。
- 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
删除文件
git rm file
删除文件,然后 commit,如果误删未提交可以使用git checkout -- file
恢复。
添加远程仓库
# 添加远程仓库
git remote add origin git@github.com:duke-james/teste.git
# push 到远程仓库,第一次推送加 -u
git push -u origin master
# 查看远程仓库信息
git remote -v
创建与合并分支
# 创建分支并跳转到指定分支,-b 表示后跳转到新分支
git checkout -b dev
# 从远程分支创建新分支
git checkout -b dev origin/dev
# 查看所有分支
git branch
# 切换分支
git checkout master
# 合并分支
git merge dev
# 删除分支
git branch -d dev
# 查看分支图
git log --graph --pretty=oneline --abbrev-commi
分支管理策略
合并分支时,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。
# 合并分支,--no-ff 参数,表示禁用 Fast forward:
git merge --no-ff -m "merge with no-ff" dev
变基
# 使提交记录变成一条直线
git rebase
标签管理
# 创建标签
git tag v1.0 -m "版本发布"
# 从历史节点创建表签
git tag v0.9 f52c633 -m "版本发布"
# 查看标签信息
git show v1.0
# 删除标签,先删除本地再推送到远程
git tag -d v0.9
git push origin :refs/tags/v0.9
# 推送某个标签到远程
git push origin v1.0
# 推送所有标签到远程
git push origin --tags
此博客已暂停维护,博主已搬家至 https://dukec.cn/