一. 创建版本库
1.cd 到版本控制目录
git init -------初始化当前目录下的版本库
git add filename ----把文件添加到git版本控制中
git commit -m "提交版本说明" ----提交到git中,并添加说明
二.版本间切换和操作
git status ----git的当前状态
git diff filename ----查看当前文件修改了哪些内容
git log /git log --pretty=oneline ----显示修改记录/一行显示
git reset --hard ec105308/HEAD^/HEAD^^/HEAD~20 ----返回到ec105308/上一版本/上上版本/前20个版本
git reflog 可以查看版本切换记录,便于切换到当前版本后的版本
1.撤销修改
git checkout -- file ----直接丢弃工作区的修改
git reset HEAD ----当已经通过git add ,把内容添加到了暂存区,想丢弃修改则使用这个
2.删除文件
rm filename
git rm filename ----删除文件
git checkout -- filename ----在没有提交前,可以把误删的文件恢复
git commit -m "xxxx" ----提交
三.远程仓库
1.创建RSA公钥
ssh-keygen -t rsa -C "[email protected]"
2.添加远程仓库
git remote add origin https://github.com/MiracleGaaral/learngit.git ----添加origin的远程仓库
git push -u origin master ----首次向github中推送
git push origin master ----有更新向github推送
3.从远程仓库克隆
git clone 仓库地址 ----从远程仓库克隆地址 https需要输账号密码,git不需要
git clone [email protected]:MiracleGaaral/learngit.git
四.分支管理
1.创建合并分支
查看分支:git branch
创建分支:git branch
切换分支:git checkout 或者git switch
创建+切换分支:git checkout -b 或者git switch -c
合并某分支到当前分支:git merge
删除分支:git branch -d
2.解决冲突
发现冲突后,先解决冲突,然后再在master分支上通过
git add filename 和git commit -m "xxx"解决冲突
查看分支合并情况:git log --graph --pretty=oneline --abbrev-commit
3.分支管理策略
强制禁用Fast forward模式:git merge --no-ff -m "merge with no-ff" dev
4.bug分支
git status 查看状态
git stash 把现场隐藏起来
创建bug分支,修复bug后,合并到master
git stash list ----查看隐藏列表
git stash apply ----恢复现场 git stash drop ----删除指定版本stash
git stash pop ----恢复的同时删除stash
git cherry-pick 8eb86f -m 1 ----将dev中的bug也象master中一样修复
5.强行删除分支
强行删除分支:git branch -D 分支名
6.多人协助
查看远程库信息: git remote
查看抓取和推送地址: git remote -v
推送分支: git push origin master/dev
抓取分支: git clone 分支地址
创建dev远程分支: git checkout -b dev origin/dev
如果git push origin dev 失败,使用git pull origin/dev拉取远程代码,
如果git pull xxx也失败了,使用git branch --set-upstream-to=origin/dev dev设置连接
git rebase -----把还没有git push 的分支合并成一条直线
五.标签管理
1.创建标签
创建标签: git tag v1.0 /git tag v0.9 bd85a767
查询标签: git tag
查看标签信息: git show v1.0
创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released" 1094adb
2.操作标签
推送某个标签到远程: git push origin v1.0
一次性推送全部尚未推送到远程的本地标签: git push origin --tags
删除本地标签: git tag -d v0.8
删除远程标签: git push origin :refs/tags/v0.8
六.自定义git
1.忽略特殊文件---创建.gitignore文件
https://github.com/github/gitignore
强制添加到Git:git add -f App.class
检查.gitignore: git check-ignore -v App.class
2.配置别名
$ 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.unstage 'reset HEAD'
$ git config --global alias.last 'log -1'
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"
3.搭建git服务器
https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664