这是一篇笔记,记录 git 常用命令。
1. 基本操作
# 克隆远程仓库地址到本地
git clone URL
# 拉取,更新到本地
git pull
# 添加本地代码到暂存区
git add .
# 添加本地代码到提交区
git commit -m'说明文字'
#将本地代码推送至远程仓库
git push
# 文件状态跟踪
git status
# 恢复文件编辑(未添加到暂存区的编辑)
git restore ***(文件名)
2. 分支
# 切换分支
git fetch origin **(分支名)
git checkout **(分支名)
# 查看分支
git branch
# 创建分支
git checkout -b **(分支名) #创建并切换到分支
git push --set-upstream origin **(分支名) #将分支推送到远程仓库
3. 远程仓库
# 查看远程仓库的地址
git remote -v
# 修改远程仓库地址
git remote set-url origin ***(新地址)
4. git merge后悔了,如何回退merge以前的版本
# 第一步,git checkout到你要恢复的那个分支上
git checkout dev
# 第二步,git reflog 查出要回退到merge前的版本号
git reflog
# 第三步,git reset --hard [版本号]
git reset --hard ***(版本号)
# 第四步,本地版本回退以后,如果将远程仓库上的代码也回退:
git push -f
5. 导出提交日志
git log --pretty=format:"%ai,%an:%s" --since ="180 day ago" >> ~/Desktop/commit.log
6. git stash
当你想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,使用git stash。该命令将保存本地修改,并恢复工作目录以匹配头部提交。
也就是说,stash 命令能够将还未 commit 的代码存起来,让你的工作目录变得干净。
为什么要变得干净呢?假如有这样一个场景:当你在dev分支开发过程中,突然得知在master分支上有个地方需要修改,此时你需要切换到master分支,但是此时如果你直接切换分支的时候,会切换失败。
因为你当前分支dev有文件更改了,需要commit到保存区才能切换分支。由于情况紧急,你只有急忙 commit 上去,commit 信息也随便写了个“暂存代码”,于是该分支提交记录就留了一条黑历史…
为了避免这种情况,可是使用 git stash, 将代码暂存起来,然后在切换分支。
当master分支工作完成,再切回来后,可使用 git stash apply,来恢复代码。
# 保存当前未commit的代码
git stash
# 保存当前未commit的代码并添加备注
git stash save "备注的内容"
# 列出stash的所有记录
git stash list
# 删除stash的所有记录
git stash clear
# 应用(恢复)最近一次的stash
git stash apply
# 应用最近一次的stash,随后删除该记录
git stash pop
# 删除最近的一次stash
git stash drop
当有多条 stash,可以指定操作stash,首先使用stash list 列出所有记录:
$ git stash list
stash@{0}: WIP on ...
stash@{1}: WIP on ...
stash@{2}: On ...
应用第二条记录:
$ git stash apply stash@{1}
pop,drop 同理。