目录
基本命令:
git config
# 显示当前的Git配置
$> git config --list
# 编辑配置
$> git config -e
# 设置
$> git config --global user.name "用户名"
$> git config --global user.email "邮箱"
$> git config --global user.password "密码"
# 查看
$> git config user.name
$> git config user.email
$> git config user.password
git status
# 查看本地库的状态
$> git status
提示:
- untracked 未跟踪(未被纳入版本控制)
- tracked 已跟踪(被纳入版本控制)
- Unmodified 未修改状态
- Modified 已修改状态
- Staged 已暂存状态
add 或者 rm 或者 mv
$> git add --all 或者 git add -A 或者 git add . # 添加所有文件
$> git add 具体文件名 #单个文件
# 删除工作区文件,并且将这次删除放入暂存区
$> git rm [file1] [file2] ...
# 停止追踪指定文件,但该文件会保留在工作区
$ git rm --cached [file]
# 改名文件,并且将这个改名放入暂存区
$> git mv [file-original] [file-renamed]
取消暂存区文件或者是切换指定版本(回退)
# 取消暂存命令格式:
$> git reset 文件名;
# 切换到指定版本命令格式:
$> git reset --hard 版本号
# 回退
$> git reset --hard head~1 将版本回退到上一次提交
提示:回退
- ~1:上一次提交
- ~2:上上次提交
- ~0:当前提交
commit
# 将暂存区的文件提交到本地库
$> git commit m "提交信息" 文件名
# 提交时显示所有diff信息
$> git commit -v
log
# 版本信息
$> git reflog # 查看所有的提交变更日志
# 详细信息
$> git log # 只能查看当前head以及以前的日志
$> git log --oneline # 简洁的日志信息
# 显示commit历史,以及每次commit发生变更的文件
$> git log --stat
# 搜索提交历史,根据关键词
$> git log -S [keyword]
分支:
branch
# 查看分支
$> git branch # 列出所有本地分支
$> git branch -v # 列出所有本地分支
$> git branch -r # 列出所有远程分支
$> git branch -a # 列出所有本地分支和远程分支
提示:前面有个*,表示是master分支
创建或者删除分支
$> git branch 分支名
$> git checkout -b 分支名称 # 创建并切换分支
$> git branch -d 分支名称 # 删除分支
# 删除远程分支
$> git push origin --delete [branch-name]
切换分支
$> git checkout 分支名
# 切换到上一个分支
$> git checkout -
# 恢复暂存区的所有文件到工作区
$> git checkout .
合并分支:将分支名合并到当前分支
$> git merge 分支名
远程操作:
查看当前所有远程地址别名
$> git remote # 查看远程仓库
$> git remote -v
# 给远程地址取别名,设置了一个AAA的仓库别名,以后push和pull都可以不用仓库地址,而用AAA
$> git remote add AAA git@github.com:aaa/test.git
# 删除AAA这个仓库别名
$> git remote remove AAA
推送本地分支到远程仓库
# 提交本地代码到远程同名分支上
$> git push
$> git push origin <分支名>
$> git push 别名 分支
$> git push 仓库地址 master # 代码提交到远程仓库,注意master分支必须写
克隆远程仓库到本地 ,clone会自动初始化本地仓库
$> git clone 远程地址
拉取远程仓库内容
$> git pull
$> git pull 远程仓库别名 远程分支名
cherry -pick:本地合并某一次提交的代码
$> # 先切换到需要复制提交的目标分支,执行git log查源分支的提交记录,找到提交的commit值(hash值)
$> git log
$> git cherry -pick commitID
$> #解决冲突,再执行add将文件标记为以解决冲突
$> git add .
$> #或者执行git rm <paths>直接从暂存区和工作区删除文件
$> #有冲突后,解决后执行 continue提交
$> git cherry -pick --continue
$> git push origin 分支名
$> #有冲突后,退出,但不回到操作前的样子
$> git cherry -pick --quit
$> #取消这次的cherry-pick操作
$> git cherry -pick --abort