在介绍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可以在任意终端输入
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上,执行以下命令:
git init
git add .
git commit -m "..."
git remote add origin github地址
git push -u origin master
使用-u即以后默认push到这个分支,即可直接用git push 代替git push origin master。
github地址为https时,这里要求输入用户名和密码;如果使用ssh就不用。
4. 对于已经是git仓库的文件夹,推送到多个仓库, 先使用git remote 来添加仓库,再push
git remote add origin url
git remote add origin1 url_1
分别push
git push origin master
git push origin1 master
5. 添加提交人的信息,方便管理
git config --global user.name "name" // 全局设置username
git config --global user.email "email" // 全局设置email
git log // 查看提交(commit)记录,可以看到提交人
git relog // 查看本地提交和哈希值,哈希值回退的时候会使用到
git config --global --list // 可以看到提交人的username和email
修改用户名和邮箱
git config --global --replace-all user.name “new name”
git config --global --replace-all user.email “new email”
relog是保存本地的所有提交以及切换,还包括reset操作。
6. 当你对文件进行了修改,但没开发完不想add,就可以使用
git stash
将修改的文件 放到工作区域外的缓存部分。
恢复就使用
git stash pop/apply
7. 查看哪些文件做了更改使用
git diff
git基础常用命令
拉取远程仓库
git clone url
新建分支
git branch dev
删除分支
git branch -D dev
复制master的代码并创建和切换到一个新分支
git checkout -b dev
本地分支推送到远程指定的分支
git pull origin 本地分支名:远程分支名
合并完代码,想回退到上一次提交
git reset --hard head^
添加tag
git tag v1.0.0
本地删除tag
git tag -d v1.0.0
查看本地所有tag
git tag --list
删除远程tag
git push origin :refs/tags/v1.0.0
删除远程分支
git push origin :<branchname>
// 或者
git branch -d -r <branchname>
取消git add到缓存区的一些文件
git reset HEAD 文件名
把工作区的内容丢弃掉,不要轻易使用
git checkout -- 文件名
查看远程分支有没有更新使用,取回特定分支的更新,但不直接合并
git fetch <远程主机名> <分支名>
git log -p FETCH_HEAD //在本地通过它查看刚取回的更新信息
merge FETCH_HEAD //将拉取下来的最新内容合并到当前所在的分支中
重命名本地分支
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~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。