查看日志
git config --list 查看git的配置
git status 查看暂存区和工作区的变化内容(查看工作区和暂存区有哪些修改)
git log 查看当前分支的commit 记录
git log -p commitID详细查看commitID的具体内容
git log -L :funcName:fileName 查看fileName文件中funcName函数的修改历史
git log --pretty=oneline 简易的查看commit 记录(直接用git log --oneline更方便一些)
git log --graph --pretty=oneline --abbrev-commit 查看分支合并图
git diff file.txt 比较工作区和暂存区内file.txt 的区别
git diff HEAD -- file.txt 比较查看版本库和工作区中的file.txt的区别
git diff --cached file.txt 比较暂存区和本地仓库
git reflog 用在回退时的场景, 当发生版本回退时,git log只能看到HEAD指针的祖先。而git reflog可以看到左右commit 记录
git show commitID 查看commitID这次提交的详细内容
本地仓库
git add file.txt 添加文件file.txt到暂存区 (也可以用git add . 将当前文件夹中所有修改都添加到暂存区)
git commit -m "xxx" 提交暂存区的内容到本地仓库 ,并添加评论"xxx", m是message的缩写
git commit --amend 上一次commit 被reviewer拒了后,做出修改后提交,要加--amend 参数
拉取远程仓库内容
git pull 用远程分支更新本地分支内容(类似于SVN中的update操作)
git pull origin master:dev 将远程库origin中的master 分支内容,更新到本地的dev分支上(如果是使用git pull origin master, 是将远程库origin中的master 分支内容,更新到当前分支上)
git clone与git pull的区别:git clone是复制一个远程库到本地,生成一个本地仓库。git pull是拉取远程库中的分支,合并到本地库中,git pull = git fetch +git merge
推送
git push -u origin master 将本地的当前分支master推送到远程(将本地库的内容推送到远程)(第一次运行,由于远程库是空的,要加-u参数,后续不用加该参数)
git push origin master 将本地的master
分支推送到origin
主机的master
分支。如果master
不存在,则会被新建。
git push origin v1.0 将v1.0这个标签推送到远程
git push origin --tags 将本地的标签一次性全部推送到远程
git push origin :ref/tags/v0.9 删除远程上的标签v0.9
git clone git@github.com:someoneAccount/repoName 克隆远程库repoName到本地
分支
git branch 查看本地所有分支
git branch -a 查看远程和本地的所有分支
git branch -d dev 删除dev分支
git branch -D 分支名 用-D参数来删除一个没有被合并过的分支
git checkout -- file.txt 用暂存区内的file.txt替换到工作区内的file.txt(如果暂存区是空的,就用版本库中file.txt替换掉工作区的file.txt)
git checkout xxx 切换到xxx分支
git checkout -b dev 创建一个新分支dev,并切换到该分支(该命令相当于两个命令:git branch dev和git checkout dev)
存贮
git stash 将当前分支的工作现场储藏起来,等以后回复现场后继续工作
git stash list查看当前分支保存起来的工作现场
git stash pop 恢复工作现场(相当于两个命令:git stash apply 和git stash drop)
git stash apply stash@{0} 恢复0号工作现场
git clean 清除untracked files
标签
git tag v1.0 给当前分支打上标签v1.0
git tag 查看所有标签
git tag v1.0 commitId 给commitId这个提交打上标签v1.0
git show v1.0 查看v1.0这个标签内容
git tag -d v0.1 删除v0.1这个本地的标签
合并
git rebase master
将当前分支的修改,在master分支上重新实现一下(rebase叫做变基, 就是把当前分子的根基改变一下)
git rebase master
git merge master
将master分支合并到当前分支,合并的步骤是将master 的多次提交合并成一次新的提交,然后再将这个新的提交实现在当前分支上。
git merge master
git merge dev 将dev分支合并到当前分支
git merge --no-ff -m "comments xxxx" dev 以no-ff的形式合并dev分支到当前分支
复制一个特定的提交到当前分支
用途:修复bug用:在某一个分支上已经修复了bug,将该提交内容commitId应用到当前的分支
git cherry-pick commitId
撤销操作
git restore
git restore --staged file 撤销git add操作,就是把文件从缓存区移动到工作区.(针对暂存区的操作)
git rm
git rm file.txt 然后git commit 从版本库中删除file.txt(本地工作区内删除,直接用rm file.txt即可)
git reset
回滚到对应的commit-id,相当于是删除了commit-id以后的所有的提交,并且不会产生新的commit-id记录,如果要推送到远程服务器的话,需要强制推送-f
git reset HEAD file.txt 清空暂存区(适用情况:写了一些胡话,已经提交到暂存区,要撤销), 其实是拉去本地仓库中最近一次提交(HEAD指针指向)到暂存区,工作区内容没有改变。
git reset --hard HEAD^ 回退到上一个版本(撤销git commit,同时也撤销git add和 工作区内容)
git reset --soft HEAD^ 撤销git commit,但不撤销git add (工作区内容依旧保持)
git revert
是反做撤销其中的commit-id,然后重新生成一个commit-id。本身不会对其他的提交commit-id产生影响,如果要推送到远程服务器的话,就是普通的操作git push就好了
git revert commit_id
修正提交
在Git中,
amend
命令是一个强大的功能,它允许您修改最近的提交。如果您忘记添加文件或在提交消息中犯了一个拼写错误,这将非常有用。
修正最后一次提交
要修改您的最后一次提交,请对项目中的文件进行所需修改,然后按照常规提交(使用git add
)的方式将这些更改添加到暂存区。一旦更改已经暂存,运行以下命令:
git commit --amend
这将使用你的默认文本编辑器打开你的最后一次提交的提交信息。您可以更改消息或保持原样。保存文件并退出编辑器以完成修正操作。
未进行更改的修复操作
如果您发现在修改提交信息或已经暂存了某些更改后没有要提交的更改,则可以使用--no-edit
选项对提交进行修正而不更改提交信息。运行以下命令:
git commit --amend --no-edit
仅修复文件
如果您已经对文件进行了更改,但想使用与上一次提交相同的提交消息,则可以使用--no-edit
选项对提交进行修正而不更改提交信息。运行以下命令:
git commit --amend --no-edit
更换仓库
git remote -v 查看远程库信息(也可以用git remote 查看简易的远程库信息)
git remote rm origin 删除远程库文章来源:https://www.toymoban.com/news/detail-783944.html
git remote add origin git@github.com:yourAccount/repoName 将远程仓库repoName与本地仓库相关联,并将远程仓库命名为origin文章来源地址https://www.toymoban.com/news/detail-783944.html
到了这里,关于git常用命令及概念对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!