git指令

95 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

本地库

初始化创建本地仓库

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>可以删除一个远程标签。