创建Git仓库
- cd到需要git管理的文件夹
git init
Git目录结构
hooks:目录包含客户端或服务端的钩子脚本;
info:包含一个全局性排除文件
logs:保存日志信息
objects:目录存储所有数据内容;
refs:目录存储指向数据(分支)的提交对象的指针
config:文件包含项目特有的配置选项
description:用来显示对仓库的描述信息
HEAD:文件指示目前被检出的分支
index:文件保存哲存区信息
查看Git 全局设置
git config -- list
Git 全局有户名和邮箱的设置
git config --global user.name "填写你的有户名"
git config --global user.email "填写你的邮箱"
Git 当前仓库有户名和邮箱的设置
git config user.name "填写你的有户名"
git config user.email "填写你的邮箱"
或者
git config --local user.name "填写你的有户名"
git config --local user.email "填写你的邮箱"
Git别名的配置 aljas
// git status是用来查看文件修改的命令,可以使用git st来代替
git config --global alias. st status
//git pul是用来远程拉取仓库代码的命令,可以使用git pl来代替
git config --global alias.pl pul1
// git ps是用来将本地修改推送至远程仓库的命令,可以使用git
git config --global alias.ps push
查看Git的文件状态
git status ./
添加修改过的文件
git add ./ // 添加所有修改过的文件
git add 文件名 // 添加指定的修改过的文件
查看修改文件的位置和内容
git diff //查看没有add 之前的文件
git diff --staged //查看没有add 之后的文件(即添加到暂存区)
提交修改过的的文件
git commit -m "提交说明"
git commit -a -m "提交说明" :先把已经跟踪过的文件添加到暂存区,让后提交。
查看Git的提交日志
git log
git log --pretty=oneline // 一行一行的展示日志内容
或者
git log --oneline
未添加进暂存区的撤销
git checkout -- 文件名 //对单个文件进行撤销
git checkout -- . //对全部修改过的文件进行撤销
回退已经添加到暂存区的某个文件
git reset HEAD :回退已经添加到暂存区的所有文件
git reset HEAD filename :回退已经添加到暂存区的某个文件
回退版本提交 git reset
git reset :是HEAD指针和分支一起移动,移动到指定的提交ID
**HEAD指针指向的当前提交对象**
**HEAD~指针指向的上一次提交对象**
git reset --soft 提交ID :只是HEAD指针和分支一起移动,工作去和暂存区没有改变
git reset 提交ID 或者 git reset --mixed 提交ID : 不仅 HEAD指针和分支一起移动,而且改变了暂存区,但没有改变工作区。
git reset --hard 提交ID :(hard:强硬的) 不仅 HEAD指针和分支一起移动,而且改变了工作去和暂存区
创建分支
//在本地新建分支()
git branch newbranch
// 在指定的提交ID处,创建分支
git branch newbranch 提交ID
//把本地分支push到远程
git push origin newbranch
//在本地新建分并且切换的新的分支上
git checkout -b newbranch
删除分支
git branch -d branchname //删除本地分支
git branch -D branchname //强制删除本地分支
git push origin -d branchname //删除远程分支
切换分支
git checkout branchname
合并分支
- git merge和git rebase都可以进行分支的合并
- git merge合并后保留两个分支的记录
- git rebase合并后会展示成一个分支的记录,另一个分支的提交实际生成了一个副本
主要:合并分支前,必须保证需要合并的分支是干净的。
//把新的分支合并到当前分支上
git merge newbranch
将远程git仓库里的指定分支拉取到本地(本地不存在的分支)
git checkout -b 本地分支名 origin/远程分支名
给Git仓库打版本
git tag - a 版本号 -m "说明信息"
git push --tag //推送tag
我们还可以给指定的提交ID 添加tag
git tag - a 版本号 提交ID -m "说明信息"
远程抓取
git fetch // fetch不会对本地仓库内容进行更新
git merge // 真正的更新本地仓库的内容
git pull = git fetch +git merge
远程推送
git push origin branchname // 把本地文件推送到远程分支上
git push origin branchname -- force // 强制把本地文件推送到远程分支(force:强迫,武力)
git push --tag //推送tag
远程仓库的操作(remote)
git remote add origin 项目仓库地址 //给本地仓库添加远程仓库关联(一个本地仓库可以添加多个远程仓库,但是最好一个本地仓库对应一个远程仓库)
git remote -v // 查看本地仓库关联远程仓库
git remote remove origin // 删除本地仓库关联的远程仓库
创建新版本库
git clone 项目仓库地址
cd 项目文件夹
touch README.md //创建文件
git add README.md
git commit -m "add README"
git push -u origin master
已存在的文件夹或 Git 仓库
cd existing_folder
git init
git remote add origin 项目仓库地址
git remote -v // 查看本地关联仓库
git add .
git commit
git push -u origin master