git命令
1. 配置命令
添加配置
git config [--local | --global | --system] user.name 'Your name'
git config [--local | --global | --system] user.email 'Your email'
区别
* local:区域为本仓库
* global: 当前用户的所有仓库
* system: 本系统的所有用户
查看配置
git config --list [--local | --global | --system]
创建工作目录/仓库
git init [仓库名及文件夹名]
文件夹下会有一个.git文件
2. 基本命令
添加到暂存区
提交一个文件
git add [文件或文件夹]将工作空间新增和被修改的文件添加的暂存区
git add .将工作空间的所有文件添加到暂存区
git add -a将工作空间被修改和被删除的文件添加到暂存区
git add -u
将文件提交到本地仓库
git commit -m "提交理由"
修改最近一次commit 的message
git commit --amend
修改旧commit的message
git rebase -i 父commit
把连续多个commit整理成一个
git rebase -I 父commit
要合并的多个commit 用squash
保留的commit 用pick
查看版本演变历史
git log查看简洁历史
git log --oneline查看最近4条日志
git log -n4 [--oneline]查看所有分支的历史
git log --all查看图形化的历史
git log --graph图形界面工具查看日志
gitk
查看当前工作目录和暂存区的状态
git status
将暂存区的文件全部会退
git reset --hard
文件重命名
git mv oldFile newFile
比较两个commit的不同
git diff ACommit BCommit
git diff HEAD HEAD^
git diff HEAD HEAD^^
git diff HEAD HEAD~2暂存区和HEAD所含文件的差异
git diff --cache工作区和暂存区所含文件的差异
git diff [文件名]两个提交的差异
git diff branch1 branch2 -- <files>
git diff commit1 commit2 -- <files>
将暂存区恢复成和HEAD一样
git reset HEAD将暂存区部分恢复成和HEAD一样
git reset HEAD -- <file>消除最近几次的提交
git reset --hard commit_id
将工作区恢复成和暂存区一样
git checkout -- 文件名
删除暂存区里的文件
git rm <file>
存放变更内容
git stash将存放的内容拿出来,stash里的丢掉
git stash pop将存放的内容拿出来放到工作区,stash堆栈里的东西还在
git stash apply
2. 远端仓库命令
查看远端仓库
git remote -v
新建远端仓库
git remote add <name> <url>
.git目录
.git/refs/heads/分支/版本库对象
显示版本库对象的内容、类型及大小信息。
git cat-file显示版本库对象的类型
git cat-file -t b44dd71d62a5a8ed3显示版本库对象的大小
git cat-file -s b44dd71d62a5a8ed3显示版本库对象的内容
git cat-file -p b44dd71d62a5a8ed3
3. 分支管理
切换分支
git checkout 分支名创建并切换到新分支
git checkout -b newBranch
查看本地所有分支
git branch -v
-v显示版本号
查看本地和远程所有分支
git branch -av
删除本地分支
git branch -d 分支名
删除远程分支
git push origin --delete 分支名
4. .gitignore文件
5. git的备份
git clone --bare <path> [zhineng.git][ya.git]
6. GitHub
查看远程版本库
git remote -v
添加github远程版本库
git remote add github <url>
添加origin远程版本库: git remote add origin <url>
拉取远程版本库代码
git fetch origin <branchName>
拉取远程分支代码,本地不存在的分支
git checkout -b <branchName> origin/<branchName>
合并github上的master分支
git merge --allow-unrelated-histories githup/master
(两分支不是父子关系,所以合并需要添加 --allow-unrelated-histories)
推送本地代码到github远程版本库
git push github <branch>