因为最近需要将本地写的代码上传到远程服务器上,需要用到git,所以紧急地学习了一些git的基础命令。以下是在github上做的演示。
准备条件
- Git:安装好git, 并生成SSH public key
- github: 注册账号,并添加SSH public key(可以看参考资料1)
1.创建仓库(repository)
仓库(又叫版本库),英文名Repository,其实就是一个目录,这个目录中的所以文件都被git管理而且,不管你做什么操作都会被记录,包括:增加、删除、修改文件等,都会被记录下来,以便后来跟踪与修改相关记录,甚至被还原。
在github上可以用可视化的方式创建新的仓库。具体操作如下:点击 头像-> your repositories-> create a new reporitory.之后进入如下界面:
这样,仓库就建成了。具体如下:
2.上传文件到仓库
(1) 先把仓库里的内容clone到本地(会在本地产生一个与repository的名字相同的文件)。
(2) 在本地电脑上打开clone的目录。
(3) 将要上传的文件添加到clone的目录里。
(4)切换到命令行界面,执行以下两条命令。
git add test.xlsx #将文件test.xlsx添加到暂存区
git add .#将所有文件都添加到暂存区中
git commit -am "测试" #可以将暂存区的内容添加到本地仓库中
Tips:
- 里涉及到一个本地仓库。本地仓库和远程仓库在本质上没有太大区别,只不过一个是本地电脑,一个是远程电脑。这里的远程仓库就是在github上的仓库。
- 如果需要从远程仓库上删除文件,则在本地仓库上直接删除,直接运行git commit命令就可以了。
(5)将代码上传到远程仓库。
git push#将改动上传到远程仓库。
刷新github网页就可以看到新增加的文件了。
3.分支
一般需要在项目中开发新的功能时,不会直接在主分支上修改,在上面更改代码。这样做的好处就是保证主线代码的完整性和可用性,也就是说,主线上都是稳定的代码,可以直接拿来发布的。
3.1 分支的基本操作
github上在创建仓库的时候默认会创建一个分支,如下:
与分支相关的常用命令主要以下几个:
命令 | 作用 |
---|---|
git branch | 列出本地已经存在的分支,并且在当前分支的前面用"*"标记 |
git branch -a | 查看所有分支列表,包括本地和远程 |
git branch -r | 查看远程版本库分支列表 |
git branch -m oldName newName | 给分支重命名 |
git branch -vv | 可以查看本地分支对应的远程分支 |
git branch dev | 创建名为dev的分支(但并不会做分支的切换) |
git branch -d dev | 删除名为dev的分支 |
git branch -D dev | 强制删除名为dev的分支 |
以git branch -a为例来说明:
一般远程分支为红色,绿色且带“*”的为当前分支。HEAD可以理解为当前分支的别名。
3.2 从分支上传文件到远程服务器
在本地创建分支,并从该分支上传文件到远程仓库。具体操作如下:
在这里并没有上传成功是因为虽然创建了名为dev的分支,但是该分支跟远程的main分支没有追踪关系。可以使用如下命令给分支建立追踪关系:
执行git push之后仍然报错,但是也给了解决方案。具体如下:
执行git push origin HEAD:main命令就可以把文件传到远程仓库的main分支了,具体如下:
若执行git push origin HEAD在会在远程仓库新建一个与当前本地分支同名的远程分支,并将数据上传到该远程分支上。
4.其他命令
这一部分主要整理的是在学git中遇到的问题。
(1) nothing added to commit but untracked files present:分支存在未监视的文件。
此时可以使用git clean删除。
参考资料
- https://www.jianshu.com/p/7edb6b838a2e
- https://www.cnblogs.com/snowdreams1006/p/10597579.html
- https://www.cnblogs.com/matengfei123/p/8252128.html
- https://blog.csdn.net/qq_42780289/article/details/97762596