廖雪峰官网 Git 教程:https://www.liaoxuefeng.com/wiki/896043488029600
$ git config --global user.name "yuan"
$ git config --global user.email "wei0801zy@163.com"
# 初始化仓库
$ git init
# 添加文件到仓库
$ git add readme.txt
$ git commit -m "wrote a readme file"
# 查看状态
$ git status
# 比较区别
$ git diff readme.txt
# 回滚版本
$ git reset --hard HEAD^ # 回到上个版本
# 查看历史
$ git log
# 撤销修改
$ git restore readme.txt
# 撤销提交
$ git restore --staged readme.txt
# 删除文件
$ git rm test.txt
# 创建SSH Key
$ ssh-keygen -t rsa -C "wei0801zy@163.com"
# 关联远程库
$ git remote add origin git@github.com:f0rge7/learngit.git
# 推送
$ git push -u origin master
# 初次推送时报错,可先将远程仓库同步到本地
$ git pull origin master
# 报错refusing to merge unrelated histories,可添加--allow-unrelated-history选项来解决问题(该选项可以合并两个独立启动仓库的历史)。
$ git pull origin master --allow-unrelated-history
# 克隆仓库
$ git clone git@github.com:f0rge7/gitskills.git
# 创建并切换到新的dev分支
$ git switch -c dev
# 切换到master分支
$ git switch master
# 查看当前分支 (*)为当前分支
$ git branch
# 合并分支
$ git merge dev
# 删除分支
$ git branch -d dev
# 带参数git log --graph查看合并分支图
$ git log --graph --pretty=oneline --abbrev-commit
# 普通合并
$ git merge --no-ff -m "merge with no-ff" dev
# 复制特定的提交到当前分支
$ git cherry-pick <commit>
# 强行删除分支
$ git branch -D feature-vulcan
# 标签管理
$ git tag v1.0
$ git tag v0.9 a994df0
# 推送某个标签到远程
$ git push origin v1.0
# 推送所有标签到远程
$ git push origin --tags
# 删除远程标签,首先删除本地标签
$ git tag -d v0.9
$ git push origin :refs/tags/v0.9
# 配置别名(可能用到)
# st 代表status
$ git config --global alias.st "status"
$ 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 fetch --all
$ git reset --hard origin/master
$ git pull