git学习笔记

安装git

设置名字和邮箱

1
2
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

创建目录

mkdir name

显示目录

pwd

创建git

git init

创建SSH Key

ssh-keygen -t rsa -C "youremail@example.com"

可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,id_rsa是私钥,id_rsa.pub是公钥。

使用git

添加、提交文件

git add file

git commit -m "message"

工作区状态

git status

查看修改

git diff file

控制版本

HEAD为当前版本,HEAD为上一个版本,HEAD为上上一个版本,HEAD100为往上100个版本

切换版本

git reset --hard commit_id/HEAD^number

查看提交历史/命令历史

1
2
git log
git reflog

--pretty=oneline(加上该参数会更简洁)

简洁图表

1
git log --graph --pretty=oneline --abbrev-commit

分叉提交历史整理成直线

git rebase

撤销工作区的修改

git checkout -- file

删除文件/版本库中删除文件

rm file

1
2
git rm file
git commit -m "message"

远程仓库

关联

1
git remote add origin address

address是github ssh地址,origin是远程仓库地址

国内有类似github的平台:gitee,优点是下载速度比较快

推送

git push (-u) origin master/branch

第一次push要加-u 远程和本地的master关联起来

克隆

git clone address

查看远程信息

git remote (-v)

创建远程库其他分支

1
git checkout -b branch origin/branch

从远程抓取分支

git pull

分支的使用

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

强行删除分支:git branch -D <name>

分支合并图:git log --graph

强制禁用Fast forward模式在合并时添加信息

1
git merge --no-ff -m "message" branch

储存工作区

隐藏:git stash

查看:git stash list

恢复:git stash apply

删除:git stash drop

恢复并删除:git stash pop

恢复指定:git stash apply stash@{number}