本文已参与「新人创作礼」活动,一起开启掘金创作之路。
本地库
初始化创建本地仓库
git init
连接远程仓库
生成ssh密钥
ssh-keygen -t rsa -C "your_email@youremail.com"
在github账号中设置添加ssh密钥(公钥)
测试ssh连接是否成功
ssh -T git@github.com
建立连接
git remote add 本地仓库名 git@github.com:username/repositoryname.git
查看仓库连接
git remote&git remote -V
克隆仓库
git clone git@github.com:username/repositoryname.git
推送到远程仓库
git push -u origin master origin:仓库名,master:分支名
结构
工作区-暂存区-本地仓库-远程仓库
提交到工作区
git add filename
将暂存区提交到本地仓库
git commit -u "提交的tips说明"
查看状态
git status
查看修改记录
git log
回退版本
上一个版本
git reset --hard HEAD^
指定版本
git reset --hard 版本号
撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,不过前提是没有推送到远程库。
分支管理
创建并切换分支
git checkout -b 分支名
相当于
git branch 分支名 //创建分支
git checkout 分支名 //切换分支
git switch 分支名 //切换分支的另一指令
查看分支
git branch带星号为正在使用的分支
合并分支
git merge 分支名 合并指定分支到当前分支
合并模式
--no--ff: 普通模式
有分支合并记录
Fast forward
没有合并分支记录
删除分支
git branch -d 分支名
删除未合并的分支
git branch -D 分支名
缓存当前分支
git stash
查看分支缓存列表
git stash list
恢复到缓存的分支
git stash apply
删除分支缓存
git stash drop
恢复缓存和删除分支缓存
git stash pop
多人协作模式
多人协作的工作模式:
首先,可以试图用
git push origin <branch-name>推送自己的修改;如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull试图合并;如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用
git push origin <branch-name>推送就能成功!
如果
git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
标签
指向commit的一个指针
创建标签
git tag 标签名
查看标签
git tag
删除标签
git tag -d 标签名
推送标签到远程
git pull origin 标签名
-
命令
git push origin <tagname>可以推送一个本地标签; -
命令
git push origin --tags可以推送全部未推送过的本地标签; -
命令
git tag -d <tagname>可以删除一个本地标签; -
命令
git push origin :refs/tags/<tagname>可以删除一个远程标签。