一、安装Git:
sudo apt install git
二、配置Git:
git config --global user.name “用户名”
git config --global user.email “邮箱”
三、配置Https:
1、创建文件
touch .git-credentials
输入 https://“用户名”:“密码”@github.com
2、配置文件
git config --global credential.helper store
查看gitconfig文件,会多出一项
[credential] helper = store
四、配置SSH:
1、生成SSH Keys:
ssh-keygen -t rsa -C “邮箱”
2、配置SSH Key:
cat ~/.ssh/id_rsa.pub
3、测试SSH Key:
ssh -T git@github.com
五、配置仓库:
1、创建本地仓库:
mkdir 仓库名
2、进入本地仓库:
cd 仓库名称
3、初始化本地仓库:
git init
4、创建Git忽略文件:
touch .gitignore
5、关联仓库:
a、先有本地库,后有远程库,将本地库push到远程库
关联本地仓库和GitHub库
git remote add origin “GitHub仓库地址”
第一次将本地仓库推送到GitHub库
git push –u origin master
b、先有远程库,后有本地库,从远程库clone到本地库
git clone “GitHub仓库地址”
六、操作相关:
查看远程仓库
git remote -v
删除远程仓库
git remote rm origin
创建本地分支:
git checkout -b 本地分支名
git checkout -b 本地分支名 origin/远程分支名 (本地不存在,将远程git仓库里的指定分支拉取到本地)
推送本地分支到远程仓库:
git push --set-upstream origin 分支名称
删除本地分支:
git branch -d 本地分支名
删除远程分支:
git push origin : 远程分支名
查看当前版本库状态:
git status
清除本地缓存(改变成未track状态)
git rm -r --cached .
提交修改至缓冲区:
git add .
提交修改至本地仓库:
git commit -m “修改说明”
git commit -a -m “修改说明”
从远程仓库获取最新:
git pull
提交修改至远程仓库:
git push -u origin 远程分支名
查看分支情况:
git branch
git branch -a
切换分支:
git checkout 分支名
合并远程分支:
git merge 被合并的分支名称
合并本地两个分支:
git merge “分支1” “分支2”
git rebase “分支1” “分支2”
筛选已合并或未合并至当前分支的所有分支:
git branch --merged
git branch --no-merged
查看所有版本的commit ID:
git reflog
回滚最近的一个版本:
git reset --hard HEAD/“版本ID”
查看历史提交记录:
git log
git log --oneline
git log --oneline --graph --decorate
七、标签相关:
1、为当前版本打标签
git tag 标签名
2、为历史版本打标签
git tag 标签名 版本ID
3、指定标签说明
git tag –a 标签名 –m “标签说明”
4、查看所有标签
git tag
5、查看某一标签
git show 标签名
6、删除某一标签
git tag –d 标签名
八、差异比较:
1、比较的是暂存区和工作区的差异
git diff
2、比较的是暂存区和历史区的差异
git diff --cached
3、比较的是历史区和工作区的差异
git diff master
九、内容撤回:
1、撤销工作区的修改
git checkout – “文件名称”
2、撤销暂存区的修改
git reset HEAD “文件名称”
3、删除暂存区的内容
git rm “文件名称” --cached
4、回退到历史版本
git reset --hard “版本ID”
git reset --hard HEAD^ 上一个
git reset --hard HEAD^^ 上两个
git reset --hard HEAD~3 上三个
九、错误提示
1、fatal: Cannot update paths and switch to branch ‘dev2’ at the same time.
Did you intend to checkout ‘origin/dev2’ which can not be resolved as commit?
表示拉取不成功。我们需要先执行
git fetch
然后再执行
git checkout -b 本地分支名 origin/远程分支名