将当前目录初始化为 git 本地仓库,此时会在本地创建一个 .git 的文件夹
静默执行,就是在后台执行
–bare
参数,一般用来初始化一个空的目录,作为远程存储仓库
–template
参数,相当于将已有的git仓库目录复制一份出来,生成新的仓库,dir是原git目录;
git init --template ../project
相当于复制仓库dir
目录(可以是工作仓库,也可以是存储仓库)中的.git
目录,只复值.git
目录
git init --separate-git-dir ../project
查看git提交记录,只看提交带本地仓库的记录;
git log
--oneline
简化git日志输出格式
$ git log --oneline
3662c32 (HEAD -> v1.0.0, origin/v1.0.0) feat: 表单已完成,等待接口完善
661dfc0 (origin/master, origin/HEAD, master) init
在git服务器上创建一个远程仓库,这里以码云为例
git remote add origin https://gitee.com/你的码云用户名/projectName
$ git remote -v
origin http://git.woa.com/bkdevops-plugins/fitFmqPulsarTopicAutoDeploy.git (fetch)
origin http://git.woa.com/bkdevops-plugins/fitFmqPulsarTopicAutoDeploy.git (push)
删除本地指定的远程地址
git remote remove origin
拉取指定分支的代码,master 是分支名称
git pull origin master
你新增的文件是不可以直接提交的,必须先将文件添加到缓存区;
# 把新增的、修改的都加到缓存
git add .
# 把新增、和修改的、和删除的都加到缓存
git add -A
# 添加 file文件或目录到缓存区
git add + file
将缓存区的文件提交到本地仓库
# 提交缓存区的所有文件到本地仓库
git commit -m '新添加的文件内容描述'
# 提交指定的文件到本地仓库
git commit -o index.html about.html -m '我同时提交了 工作区的index.html 和 暂存区的about.html 这两个文件'
push 是将本地仓库中的代码推送到远程仓库
# 将本地仓库的代码推送到远程仓库的master分支
git push origin master
拉取指定git url的代码,未指定分支的情况下,默认拉取master分支
git clone https://xxx.git
git拉取远程指定分支下代码(-b 分支名称)
git clone -b v2.8.1 https://xxx.git
git fetch origin master
查看git的配置信息
# 执行后,,进入编辑状态,按 Q 退出
git config -l
修改配置
# git配置本地仓库的userName(必须)
git config user.name 'Lee'
# git配置本地仓库的邮箱(必须)
git config user.email '[email protected]'
查看当前git状态信息(查看是否有文件未提交),以下示例提示有个 index.html
的文件修改了未提交,Untracked files表示忽略的目录或文件
$ git status
On branch v1.0.0
Your branch is up to date with 'origin/v1.0.0'.
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git restore ..." to discard changes in working directory)
modified: src/index.html
Untracked files:
(use "git add ..." to include in what will be committed)
../.idea/
no changes added to commit (use "git add" and/or "git commit -a")
origin/HEAD 是一个默认分支的指针,指向了master,表示origin/master就是默认分支
$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/v1.0.0
*
表示当前选择的分支
$ git branch -a
master
* v1.0.0
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/v1.0.0
可以用来删除已提交到本地仓库的版本,回退到上一个版本,切记,谨慎使用,执行多次会恢复到之前的版本,且代码不可恢复( --hard表示全恢复 )
# 以下2种用法,linux系统使用第一种,win系统使用第二种
git reset --hard HEAD^
git reset --hard "HEAD^"
回退到指定的版本,提交点:可用ID或标签
# 回退到指定的版本号
git reset --hard 3662c32f
回退后需要反悔的话,需要通过此命令查找到所有操作的提交点
git reflog
目录下建立一个.gitignore文件(可以有多个,影响范围当前文件及子文件),文件内可指定提交时忽略的文件和目录,可 同时忽略多个
touch .gitignore
删除缓存区的所有文件, .
表示所有
git rm -r --cached .
删除缓存区指定的文件
git rm -r --cached index.html
合并分支reking和主干master,合并后的提交点属于主干master
git checkout master
git rebase reking
比较本地 v1.0.0
分支和远程分支origin/master
的差异
$ git diff --stat v1.0.0 origin/master
bk-frontend/package.json | 5 +-
bk-frontend/src/Atom.vue | 63 ++++++++++++
bk-frontend/src/data/Index.vue | 187 ------------------------------------
bk-frontend/src/data/LocalAtom.vue | 74 ++++++++++++++
bk-frontend/src/data/PublicAtom.vue | 103 ++++++++++++++++++++
bk-frontend/src/data/task.json | 49 ++++++++++
bk-frontend/src/main.js | 11 +--
7 files changed, 295 insertions(+), 197 deletions(-)