❧ 常用命令使用

Git工作原理,如图所示:
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
配置
# 显示当前的Git配置:git config --list
# 编辑Git配置文件:git config <--local | --global | --system> -e
# 添加配置项git config <--local | --global | --system> --add <name> <value>
# 获取配置项git config <--local | --global | --system> --get <name>
# 删除配置项git config <--local | --global | --system> --unset <name>
# 配置提交记录中的用户信息git config --global user.name <用户名>git config --global user.email <邮箱地址>
# 配置可以缓存密码,默认缓存时间15分钟git config --global credential.helper cache
# 配置密码的缓存时间,单位:秒git config --global credential.helper 'cache --timeout=<缓存时间>'
# 配置长期存储密码git config --global credential.helper store—local:仓库级
—global:全局级
—system:系统级
克隆
git clone <远程仓库的网址> [本地目录]
# 指定分支克隆git clone <远程仓库的网址> -b <分支名称> [本地目录]状态
# 以简短模式查看本地仓库的状态# 文件状态:A 新增,M 修改,D 删除,?? 未添加到Git中git status -s提交注释修改
# 修改commit注释git commit --amend远程仓库
# 修改远程仓库的别名git remote rename <原远程仓库的别名> <新的别名>
# 修改远程仓库的 URL 地址git remote set-url <远程仓库的别名> <新的远程仓库URL地址>分支
# 创建新分支,新的分支基于上一次提交建立git branch <分支名>
# 修改分支名称# 如果不指定原分支名称则为当前所在分支git branch -m [<原分支名称>] <新的分支名称># 强制修改分支名称git branch -M [<原分支名称>] <新的分支名称>
# 删除指定的本地分支git branch -d <分支名称>
# 强制删除指定的本地分支git branch -D <分支名称>
# 删除指定的远程仓库的分支git push <远程仓库的别名> :<远程分支名>git push <远程仓库的别名> --delete <远程分支名>检出
# 切换到已存在的指定分支git checkout <分支名称>
# 创建并切换到指定的分支,保留所有的提交记录# 等同于 "git branch" 和 "git checkout" 两个命令合并git checkout -b <分支名称>
# 创建并切换到指定的分支,删除所有的提交记录git checkout --orphan <分支名称>
# 替换掉本地的改动,新增的文件和已经添加到暂存区的内容不受影响git checkout <文件路径>查看历史记录
# 一行显示,commitId 完整显示git log --pretty=oneline
# 一行显示,commitId 简短显示git log --oneline
# 显示全部记录(空格向下翻页、B向上翻页、Q退出)git reflog
# 打印指定数量的最新提交的记录git log -<指定的数量>回滚还原
# 撤销git add,没有文件路径,撤销全部文件git reset HEAD [文件路径]
# 撤销git commitgit reset --soft HEAD^
# 撤销到指定的提交记录git reset --hard <commit ID>-–soft,仅仅在本地库移动HEAD指针
-–mixed,在本地库移动HEAD指针并重置暂存区
-–hard,在本地库移动HEAD指针,并重置暂存区和工作区
忽略已提交文件
# 1. 首先修改 .gitignore 文件,把要忽略的文件或目录添加进去
# 2. 从暂存区中移除文件,但不会删除本地的文件git rm --cached <file>
# 2. 从暂存区中移除文件夹,但不会删除本地的文件夹git rm -r --cached <directory>
# 3. 移除之后,提交并推送到远程仓库比较
# 比较暂存区中的文件和上次提交时的差异git diff --cachedgit diff --staged
# 将工作区和暂存区进行比较git diff [file name]
# 将工作区和本地库进行比较git diff HEAD [file name]
# 比较两次提交之间的差异git diff <id1> <id2>
# 比较两个分支之间的差异git diff <分支名称> <分支名称>注:如果不加文件名则是比较多个文件
合并
# 把已经提交的记录合并到当前分支git cherry-pick <commit ID>
# 把指定的分支合并到当前所在的分支下$ git merge <分支名称>标签
# 打印所有的标签git tag
# 添加轻量标签,指向提交对象的引用,可以指定之前的提交记录git tag <标签名称> [<commit ID>]
# 添加带有描述信息的附注标签,可以指定之前的提交记录git tag -a <标签名称> -m <标签描述信息> [<commit ID>]
# 切换到指定的标签git checkout <标签名称>
# 查看标签的信息git show <标签名称>
# 删除指定的标签git tag -d <标签名称>
# 将指定的标签提交到远程仓库git push <远程仓库的别名> <标签名称>
# 将本地所有的标签全部提交到远程仓库git push <远程仓库的别名> –tags临时缓存
# 缓存git stash save [save message]
# 缓存记录列出git stash list
# 显示改动的文件,添加-p参数显示详细改动git stash show [stash@{num}]
# 恢复,只能恢复一次git stash pop [stash@{num}]
# 恢复,可恢复多次git stash apply [stash@{num}]
# 删除指定缓存git stash drop [stash@{num}]
# 删除所有缓存git stash clearstash命令可用于临时缓存和恢复修改,可跨分支
注:在未
add之前才能执行stash!!!