环境配置
//配置用户信息
git config --global user.name "name"
git config --global user.email "email "
//查看所有用户配置
git config --list
//查看user.name配置
git config user.name
初始化仓库
//在本地初始化一个Git仓库
git init
//从远程仓库克隆
git clone
Git工作目录下文件的两种状态
- untracked 未跟踪(未被纳入版本控制)
- tracked 已跟踪(被纳入版本控制)
-- Unmodified 未修改状态
-- Modified 已修改状态
-- Staged 已暂存状态
本地仓库操作
//查看文件状态
git status
or
git status –s
//将未跟踪的文件加入暂存区
//添加一个或多个文件到暂存区
git add [file1][file2]...
//添加指定目录到暂存区(包括子目录)
git add [dir]
//添加当前目录下的所有文件到暂存区
git add .
//将新创建的文件加入暂存区后查看文件状态
git status
//将暂存区的文件取消暂存
git reset name
//将文件取消暂存后查看文件状态
git status
//把暂存区的文件修改提交到仓库
git commit -m "注释"
//1 file changed:1个文件被改动(新添加的test.md文件)
//0 insertions:没有新增内容变化。
//0 deletions:没有删除内容变化。
//删除文件
git rm
// 删除文件后查看文件状态
git status
//以上删除的只是工作区的文件,还需要提交到本地仓库
git commmit -m "注释"
//将文件添加至忽略列表
//.gitignore 配置忽略提交
//查看日志记录
//命令显示从最近的提交日志, 如果嫌输出信息太多,可以试试加上--pretty=oneline参数。
git log
//强制拉取
git fetch
//本地回滚然后提交
git revert
远程仓库操作
//查看远程仓库
git remote
//关联到远程仓库
git remote add origin 你的远程库地址
//从远程仓库克隆
git clone
//移除无效的远程仓库(此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库)
git remote rm
//从远程仓库中抓取与拉取(从远程仓库获取最新版本到本地仓库,不会自动merge)
git fetch
//获取远程库与本地同步合并(这一步谨慎使用,若分支不一样可能会覆盖本地代码,第一次上传关联可直接跳过)
//注:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数–allow-unrelated-histories
git pull
//把本地库的内容推送到远程等于把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。(注意推送分支,若要推送新分支先创建再推送)
git push [remote-name] [branch-name]
git push -u origin master
Git分支
//查看分支
git branch
//列出所有远程分支
gir branch -r
//列出所有本地分支和远程分支
git branch -a
//在本地新建一个分支(name为分支名字)
git branch [branch name]
git branch name
//切换新分支(name为分支名字)
git checkout name
//下载远程分支为本地分支
git checkout -b <localName> <branch-name>
//git checkout命令加上-b参数表示创建并切换,相当于以下两条命令
git branch name
git checkout name
//将新分支发布在github上(name为分支名字)
git push origin name
git push
//合并分支(Fast forward模式下,删除分支后,会丢掉分支信息。)
git merge
//删除分支
git branch -d [branch name]
//删除远程仓库中的分支
git push origin –d branchName