git常用命令
在介绍git常用命令我们之前先了解一下semver和版本名称。
semver
semver是语义化版本(Semantic Versioning)规范 的一个实现,目前是由 npm 的团队维护,实现了版本和版本范围的解析、计算、比较。
版本名称解释
当你看到以下版本带有以下关键词时,它们分别代表:
- alpha: 内部测试版本,除非是内部测试人员,否则不推荐使用,有很多bug
- beta:公测版本,消除了严重错误,还是会有缺陷,这个阶段还会持续加入新的功能
- rc:Release Candidate,发行候选版本,这个版本不会加入新的功能,主要是排错,修改bug
- release:发行版本
git版本管理控制工具
类似工具:码云、gitee、gitlab
- ssh密钥:使用密钥对与远程仓库进行通讯
- http协议:使用用户名和密码生成的token与远程仓库进行通讯
git基础
1. 使用https方式克隆github上的项目(私有和共有),需要输入用户名密码(之前操作过那可能就不用了)
2. 使用ssh方式克隆github的项目
在个人设置的setting里找到ssh那一选项,然后点击generate shh key看教程,其实就是以下操作:
windows在git bash输入,mac和linux可以在任意终端输入
1 | ssh-keygen -t rsa -b 4096 -C "your_email@example.com" |
生成的key默认存在c/users/username/.ssh/id_rsa
id_rsa.pub里面的内容就是ssh key啦,添加到github上
然后就可以clone ssh的url了。
3. 对于本地已有的代码项目,推到github上,执行以下命令:
1 | git init |
使用-u即以后默认push到这个分支,即可直接用git push 代替git push origin master。
github地址为https时,这里要求输入用户名和密码;如果使用ssh就不用。
4. 对于已经是git仓库的文件夹,推送到多个仓库, 先使用git remote 来添加仓库,再push
1 | git remote add origin url |
分别push
1 | git push origin master |
5. 添加提交人的信息,方便管理
1 | git config --global user.name "name" // 全局设置username |
修改用户名和邮箱
1 | git config --global --replace-all user.name “new name” |
relog是保存本地的所有提交以及切换,还包括reset操作。
6. 当你对文件进行了修改,但没开发完不想add,就可以使用
1 | git stash |
将修改的文件 放到工作区域外的缓存部分。
恢复就使用
1 | git stash pop/apply |
7. 查看哪些文件做了更改使用
1 | git diff |
git基础常用命令
拉取远程仓库
1 | git clone url |
新建分支
1 | git branch dev |
删除分支
1 | git branch -D dev |
复制master的代码并创建和切换到一个新分支
1 | git checkout -b dev |
本地分支推送到远程指定的分支
1 | git pull origin 本地分支名:远程分支名 |
合并完代码,想回退到上一次提交
1 | git reset --hard head^ |
添加tag
1 | git tag v1.0.0 |
本地删除tag
1 | git tag -d v1.0.0 |
查看本地所有tag
1 | git tag --list |
删除远程tag
1 | git push origin :refs/tags/v1.0.0 |
删除远程分支
1 | git push origin :<branchname> |
取消git add到缓存区的一些文件
1 | git reset HEAD 文件名 |
把工作区的内容丢弃掉,不要轻易使用
1 | git checkout -- 文件名 |
查看远程分支有没有更新使用,取回特定分支的更新,但不直接合并
1 | git fetch <远程主机名> <分支名> |
重命名本地分支
1 | git branch -m <oldbranch> <newbranch> |
gitignore
我们在项目文件里经常会看到gitignore文件,这个文件就是会在推送的时候忽略某些文件,不去推送它们。
有时候我们可能需要去更新和管理gitignore的内容,以下有三种方法可以帮助到我们:
- gitignore的github里查找相对的文件, 进行复制。
- 在gitignore.io根据自己的系统、idea、语言生成文件,进行复制。
- 使用vscode的小伙伴可以在vscode搜索gitignore generator的插件,然后ctrl+shift+P调出面板,搜索generator ,点击enter就可以选择内容,然后生成文件。
最后安利比vscode自己自带的git工具还好用的插件——gitlens~