1. git简介
- 工作区:本地电脑存放项目文件的地方;
- 暂存区:在使用git管理项目文件的时候,其本地的项目文件会多出一个.git的文件夹,将这个.git文件夹称之为版本库。其中.git文件夹中包含了两个部分,一个是暂存区(Index或者Stage),顾名思义就是暂时存放文件的地方,通常使用add命令将工作区的文件添加到暂存区里;
- 本地仓库:使用commit命令可以将暂存区中的文件添加到本地仓库中;
- 远程仓库:项目代码在远程git服务器上,比如项目放在github上,就是一个远程仓库,通常使用clone命令将远程仓库拷贝到本地仓库中,开发后推送到远程仓库中即可
2. git配置
- 配置用户名:
git config --global user.name "your name"
;
- 配置用户邮箱:
git config --global user.email "youremail@github.com"
;
3. 工作区操作
新建仓库
- 创建新的本地仓库:
git init
- 从远处仓库复制项目:
git clone
提交
- 提交工作区所有文件到暂存区:
git add .
- 提交工作区中指定文件到暂存区:
git add [文件名]
撤销删除
- 删除工作区文件,并且也从暂存区删除对应文件的记录:
git rm -f [文件名]
- 从暂存区中删除文件,但是工作区依然还有该文件:
git rm --cached [文件名]
- 拉取暂存区的文件,并将其替换成工作区文件:
git checkout -- [文件名]
,简单的说 就是当我们把工作区弄乱了,可以帮我们 拉取暂存区 恢复工作区
查询信息
- 查询当前工作区所有文件的状态:
git status
- 对比工作区和暂存区之间的差异,即修改后还没有暂存的内容:
git diff
4. 暂存区操作
提交文件到本地仓库
- 将暂存区中的文件提交到本地仓库:
git commit -m "commit_info"
- 将所有已经使用git管理过的文件暂存后一并提交,跳过add到暂存区的过程:
git commit -a -m "commit_info"
- 提交文件时,发现漏掉几个文件,或者注释写错了,可以修改上一次提交:
git commit -- amend
- 输入指令后会进入git vim 编辑器
- 按
a
,i
或o
进入编辑模式
- 按
ESC
进入操作模式
- 在操作模式下,
:wq
为写入退出,:q!
不保存退出
查看信息
- 比较暂存区和本地仓库的差异:
git diff --cached
- 指定文件在暂存区和本地仓库的不同:
git diff [文件名] --cached
;
- 查看提交历史:
git log
- 参数-p展开每次提交的内容差异
git log -p
- 用-2显示最近的两次更新
git log -p -2
版本回退
- 将代码回退到上一次提交时的状态:
git reset --hard Head
- 将代码回退到上上一次提交时的状态:
git reset --hard Head~1
- 将代码回退到上上上一次提交时的状态:
git reset --hard Head~2
- 查看之前所有版本切换的操作记录,可以通过这个命令得到的版本号回退到指定的版本:
git reflog
- 将代码回退到指定版本:
git reset --hard [版本号]
分支管理
- 显示本地仓库的所有分支:
git branch
;
- 创建分支:
git branch [分支名]
- 从当前所处的分支切换到其他分支:
git checkout [分支名]
- 新建并切换到新建分支上:
git checkout -b [分支名]
- 删除分支:
git branch -d [分支名]
- 将当前分支与指定分支进行合并:
git merge [分支名]
;
- 查看各个分支最后一个提交对象的信息:
git branch -v
;
- 在远程分支的基础上创建新的本地分支:
git checkout -b <branch-name> <remote-name>/<branch-name>
- 即:
git checkout -b [本地分支名] origin/[远程分支名]
- 使用例子:
git checkout -b branch-dev origin/branch-dev
;
5. 本地仓库操作
- 添加远程仓库,取一个变量名代替地址:
git remote add [变量名] [远程服务器地址]
- 示例:
git remote add origin https://github.com/Saber-tgb/test-git.git
- 指定默认上传服务器地址并推送分支:
git push -u origin master
- 将本地的master分支推送到origin服务器 同时指定origin为默认上传服务器地址,后面就可以不加任何参数使用git push了
- 将本地仓库某分支推送到远程仓库:
git push origin [分支名]
- 将
dev
分支推送到远程仓库git push origin dev
- 拉取远程仓库:
git pull
6. 忽略文件.gitignore
- 我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录下所有扩展名为 txt 的文件
doc/**/*.txt
网友评论