git学习记录
分支篇
git branch // 查看本地分支列表
git branch -r // 查看远程分支列表
git branch -a // 查看本地和远程分支列表
git branch <branchname> // 创建分支
git checkout <branchname> // 切换分支
git checkout -b <branchname> // 创建并切换到目标分支
git branch -d | -D <branchname> // 删除本地分支
git push origin --delete <branchname> // 删除远程分支
仓库
git remote -v // 显示本地仓库与远程仓库的关联
git remote add <shortname> <url> // 添加一个新的远程 Git 仓库,同时指定一个方便使用的简写
git remote rename pb paul // 重命名仓库 pb -> paul
git remote remove paul // 删除远程仓库及其相关配置
git fetch <remote> // 从远程仓库拉取内容,但不会与当前分支合并
git pull <remote> <branchname> // 从远程仓库拉取内容,自动与当前分支合并
git push <remote> <branchname> // 推送当前本地分支内容到远程分支
分支合并
git merge master // 合并master分支到当前分支,这种方式会新生成一次commit的信息。
git rebase master // 也是合并,但是不会产生分叉,日志看起来好看
stash
git stash // 把未提交的修改,暂存起来
git stash save "message" // 同上,并且给stash加一个message
git stash list // 查看现有stash
git stash pop // 将缓存堆栈中的第一个stash删除,并将对应修改应用到当前的工作目录下
git stash apply // 将缓存堆栈中的stash多次应用到工作目录中,但并不删除stash拷贝
git stash drop stash@{0} // 移除stash,后面跟的是stash的名字
git stash clear // 删除所有缓存的stash
git stash show // 查看stash的diff,在该命令后面添加-p或--patch可以查看特定stash的全部diff
git stash branch testchanges // 从stash创建分支
默认情况下,
git stash
会缓存下列文件:
- 添加到暂存区的修改(staged changes)
- Git跟踪的但并未添加到暂存区的修改(unstaged changes)
但不会缓存以下文件:
- 在工作目录中新的文件(untracked files)
- 被忽略的文件(ignored files)
git stash
命令提供了参数用于缓存上面两种类型的文件。使用-u
或者--include-untracked
可以stash untracked
文件。使用-a
或者--all
命令可以stash
当前目录下的所有修改。