独自使用Git
基本使用
GitHub上是空仓库
创建一个目录,该目录就是项目,进入该目录后执行下面命令
git init #初始化仓库,会在当前目录下生成 .git 目录,该目录就是git的本地仓库以及暂存区
git status #查看当前git仓库当前状态
#红色是工作区的改动的文件
#绿色是暂存区的改动的文件
#没有显示是因为已经提交到本地仓库中,即当前没有改动
在该目录下编写代码,这里以README.md
文件为例,编写好后,先将文件改动提交到暂存区
git add README.md #单独将工作区 README.md 文件的改动提交到暂存区
git add . #将工作区所有文件的改动都提交到暂存区
git add -A #将工作区所有文件的改动都提交到暂存区
在将文件改动添加到本地仓库
git commit -m "本次提交的描述信息" #将暂存区中的改动提交到本地仓库
#若不指定-m参数会进入到vim编辑器界面,进行更详细的说明,第一行是标题
再将本地仓库推送到远程仓库
git branch -M main #切换到主分支
git remote add origin URL #与远程程仓库建立连接
git remote -v #查看本地仓库和远程仓库的连接
git push origin main #将本地仓库推到远程仓库主分支中
GitHub上是非空仓库
将非空仓库克隆下来
git clone URL 文件名 #克隆远程仓库,文件名可不取,默认是仓库名
cd 文件名 #进入克隆的仓库内
在该目录下编写代码,这里以README.md
文件为例,编写好后,先将文件改动提交到暂存区
git add README.md #单独将工作区 README.md 文件的改动提交到暂存区
git add . #将工作区所有文件的改动都提交到暂存区
git add -A #将工作区所有文件的改动都提交到暂存区
在将文件改动添加到本地仓库
git commit -m "本次提交的描述信息" #将暂存区中的改动提交到本地仓库
#若不指定-m参数会进入到vim编辑器界面,进行更详细的说明,第一行是标题
再将本地仓库推送到远程仓库
git push #将本地仓库推到远程仓库
文件操作
这些命令很像Linux中的命令,但是只是针对已经提交到本地仓库的文件,对提交到本地仓库的文件无效,并且会将这些改动立即加入暂存区
git rm xxx #删除文件
git mv xxx xxx #移动或重命名文件
提交日志
git log #查看历史提交的信息,使用 git show ID 即可查看本次提交的详细信息
#常用筛选参数如下:
#--author="xxx" #查看该作者的提交记录
#--pretty=oneline xxx #查看该文件的提交记录
#--oneline #以单行形式显示
#--oneline --graph #查看项目历程图,包括分支情况
git reflog #查看历史版本信息和回滚信息
版本回退
git diff #查看当前工作区与暂存区文件之间的变化
git checkout xxx #撤销工作区该文件改动
git reset xxx #撤销暂存区对该文件的暂存
git log -p xxx #查看该文件具体内容的每次提交变化
git reset --hard ID #根据提交ID回退,硬回退,不保留变更内容的回退
git reset --soft ID #根据提交ID回退,软回退,保留变更内容到暂存区的回退
git reset --mixed ID #根据提交ID回退,混合回退,保留变更内容到工作区的回退
git checkout ID xxx #将该单个文件回退到指定版本
git reset --hard HEAD^ #一个尖括号表示回退一个版本
版本标签
git tag #查看所有标签
git tag 标签名 #为上一次提交增加一个标签
git tag 标签名 ID #为指定提交增加一个标签
git tag -d 标签名 #删除指定标签名
git push origin 标签名 #将标签推送至远程仓库
分支操作
git branch #查看所有分支,以及当前分支
git branch 分支名 #创建新分支
git checkout 分支名 #切换分支
git checkout -b 分支名 #创建新分支,并同时切换到该分支
git branch -d 分支名 #删除分支,若该分支已经提交过就不能删除
git branch -D 分支名 #强制删除分支,无论该分支是否提交过
#删除分支的前提是不能删除当前所在分支
git push -u origin 分支名 #将新建的分支推送至远程仓库
git push origin 分支名 #将已存在的分支推送至远程仓库
合并分支
git checkout main #切换到主分支
git merge 其他分支名 #将其他分支合并到主分支
#若上面命令分支有冲突时,会在文件中使用尖括号标记上冲突部分,可使用下面命令进行忽略
git merge --abort #忽略其他分支的冲突部分
变基
枚举变更使所有提交依次进行合并分支,简单的说就是在未剪出新分支的情况下,将老分支当作新分支来使用
Comments NOTHING