前言:上一章简要介绍了git的安装和基本配置,这里介绍git的基本操作以及其与远程仓库的交互。
上一章传送地址:git的快速安装与配置
1.Git项目创建(获取本地仓库):
git的基本工作步骤:
先由工作区到暂存区再到仓库。
1.新建一个文件夹作为工作目录:
2.进入该文件夹,进入git命令行,并输入:
git init
进行git项目的初始化,之后当前目录中会出
现 一个.git目录。
3.将要上传的文件放至工作空间。
4.对要修改的文件进行修改后,使其进入工作区然后输入:
git add .
将文件添加至暂存区,将其交由git管理。
4.输入:
git commit -m “此处可任意输入”
将暂存区的文件提交到本地仓库。
5.其他相关操作指令:
1.查看当前修改状态:
git status
2.查看提交日志:
git log
git log [option]
--all #显示所有分支
--pretty=oneline #将提交信息显示为一行
--abbrev-commit #使得输出的commited更简短
--graph #以图的形式显示
3.版本回退
git reset --hard commitID
commitID 可以通过git-log 或者git log 获取
同时如果要回退到之前的版本则可以通过
git reflog
来获取之前的commit ID
4.添加文件至忽略列表
可以通过创建一个名为.gitignore的文件,用于列出需要忽略的文件
# 为注释
* .txt #忽略所有 .txt结尾的文件
!lib.txt #但lib.txt除外
/temp #忽略该目录下所有文件但不包含该temp目录
build/ #忽略build目录下的所有文件
doc/*.txt #忽略该子目录下的.txt文件,但不忽略子子目录下的.txt文件。
2.Git 分支
在开发过程中先将代码放到不同的分支当中,不同分支之间互不影响,在修改完成之后再进行合并。
1.查看本地分支
git branch
2.创建本地分支
git branch 分支名
3.切换分支
git checkout 分支名
git checkout -b 分支名 (新建并跳转到该分支)
4.合并分支
git merge 分支名
5删除分支(不能删除当前分支)
git branch -d 分支名
git branch -D 分支名(强制删除)
6.冲突解决
当两个人同时开发,需要进行版本合并时,两者对相同内容做了不同的更改,此时再采取合并就会出现矛盾,此时需要手动解决。
3.远程仓库交互
常用的远程仓库有gitee和github,但github有墙的限制通常登录较慢,故此处采用gitee。
1.注册gitee(码云):
2.生成/添加SSH公钥:
Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。
你可以按如下命令来生成 sshkey:
先进入到用户目录的.ssh下并输入:
ssh-keygen -t rsa
一直回车即可生成密钥。
查看生成的密钥:
cat ~/.ssh/id_rsa.pub
复制所得密钥,将其添加到gitee公钥中。
3.git本地端与远程端建立连接
将仓库的ssh地址复制后在对应git项目中的git bash中输入:
git remote add origin 加远程仓库对应的ssh地址
#其中origin 对应的是仓库的别名,可随意设置。
输入
git remote
可查看远端仓库
将本地分支推到远端可输入
git push [-f] origin master:master
#若push两端均为master,则可以省略:master 其中-f 表示强制上传
当要新建的仓库与本地文件有冲突时,有以下两种解决方法:
1.将远程仓库克隆到本地,再将要上传的文件加入到本地仓库中,然后git push.
2.利用指令
git pull origin main --allow-unrelated-histories
忽略不相关文件冲突。
利用
git push --set-upstream origin master
可绑定默认上传路径
之后便可以通过git push直接上传本地的master到origin的master上了。
用
git branch -vv
可查看本地分支与远程分支的对应关系。
4.远程仓库的克隆
git clone [ssh地址] [指定本地仓库名称 可省略]
5.远程仓库的抓取与拉取
git fetch [远程仓库名称] [分支名]
#将仓库中的更新都抓取到本地但不合并 ,如不指定分支则默认抓取master
git merge origin/master
#表示合并远程仓库中的master分支到当前本地关联分支
git pull [远程仓库名称] [分支名]
#等同于远端fetch + merge
以上就是git 的基本用法介绍及其与远程仓库的交互啦。