[Git] Git基础使用笔记

Git

廖雪峰教程

安装并配置git

sudo apt-get install git
git config --global user.name "username"
git config --global user.email "email"

版本库的基础操作

初始化git仓库

git init(在合适的目录中运行)

添加文件到版本库/从版本库中删除文件

git add <file>...
git rm <file>...

提交暂存库中的修改至版本库

git commit -m <message>

查看工作区状态/查看修改内容

git status
git diff
git diff HEAD -- <file>

查看提交历史/查看命令记录

git log
git log --pretty=oneline
git reflog

版本切换

git reset --hard HEAD^(回退1版)
git reset --hard HEAD~1(回退1版)
git reset --hard d3e6f32(回退至提交id对应的版本)

撤销工作区的修改/撤销暂存区的修改

git restore <file>...
git restore --staged <file>...

远程仓库

创建ssh-key 将用户主目录下的.ssh/id_rsa.pub添加到github中

ssh-keygen -t rsa -C "email"

关联远程库并进行首次推送

git remote add origin git@github.com/xxx
git push -u origin master

克隆远程库

git clone git@github.com/xxx

推送修改至远程仓库

git push origin master

分支管理

创建并切换分支

git switch -c dev (等价于下面两条命令的组合)
git branch dev
git switch dev

查看分支

git branch

删除分支

git branch -d branch-name (普通分支:未修改或者已经合并完成的分支)
git branch -D branch-name (强行删除:修改后未进行合并的分支)

合并分支至当前分支

合并分支产生冲突时,手动修改冲突文件,重新添加并提交
git merge dev
git merge --no-ff -m "message" dev (普通合并模式,有合并历史)
git log --graph --pretty=oneline --abbrev-commit (查看分支合并情况)

BUG相关

保留当前现场以便切换到其他分支

git stash (保留现场)
git stash pop (恢复现场,等价于下面两条语句)
git stash apply
git stash drop

复制特定提交到当前分支(常用于修复BUG)

git cherry-pick <commit>

多人协作相关

查看远程库相关信息

git remote -v

从本地推送分支至远程库

git push origin dev

提交失败时,第一次先建立关联并抓取已有的分支

git branch --set-upstream dev origin/dev
git pull origin dev

整理本地未push的历史记录为直线

git rebase

标签管理

创建标签

git tag v1.0
git tag v0.9 8bfc362
git tag -a v0.1 -m "message" a355bc8

查看标签列表与标签信息

git tag
git show v1.0

推送标签到远程

git push origin v1.0
git push origin --tags

删除标签

git tag -d v0.9
git push origin :refs/tags/v0.9

多个远程库

git remote add gitee git@gitee.com:xxx
git remote add github git@github.com:xxx

忽略特殊文件

添加.gitignore文件到库中

# 注释

# 所有的.class文件忽略掉
*.class 

# 将该文件排除在忽略名单外,即App.class需要添加到库中
!App.class

git add -f App.class (强行添加忽略的文件)
git check-ignore -v App.class (检查文件被哪条规则忽略)

配置别名

配置文件在 .git/config 或 ~/.gitconfig 中

git config --global alias.st status
git st

posted @ 2020-12-01 14:15  by-sknight  阅读(88)  评论(0编辑  收藏  举报