Git常用命令整理
学习资料来源:
后期会不定期更新
2020-4-16更新
- git fetch origin 分支名称
获取远端分支至本地
2019-12-27更新
- git remote set-url origin 新地址
更换远程仓库地址
操作指令:
- git config --global user.name "Your Name"
- git config --global user.email "email@example.com"
设置当前电脑上的Git仓库的用户名和Email地址, --global参数表示所有仓库都使用这个配置
- pwd
用于显示当前目录,PS:为了不出错,确保目录名不包含中文
- git init
将当前目录初始化为git仓库,会创建一个.git文件夹,用来跟踪管理版本库
- git add 文件名(可多个文件,空格隔开)
将文件添加到暂存区
- git add .
将工作区内所有修改文件添加到暂存区
- git commit -m "描述性文字"
将暂存区的文件提交到仓库中,描述性文字是必填的(可通过修改配置实现不添加描述也能提交,但不建议这么做)
- git status
查看当前仓库状态,例如有哪些文件做了修改还未提交
- git diff
查看当前工作区与暂存区的不同之处
- git log
查看仓库每次提交的历史记录
- git log --pretty=oneline
格式化log输出效果,将每次提交记录显示在一行
- git reset --hard 版本号
回退到仓库中的某个版本(也可以是未来的某个版本),版本号可以写head^,也可以写 commit id(不用全写出来,写前几位,能与其他的区分开即可)
- git reflog
查看每一次git命令记录(commit及reset记录)
- git checkout -- 文件名
撤销文件在工作区内的修改,还原到最近一次add或是commit的状态
- git reset HEAD 文件名
撤销文件在暂存区内的修改,将暂存区还原到HEAD版本(最新commit的版本)的状态
- git rm 文件名
提交删除文件操作到暂存区
- git remote add origin git@server-name:path/repo-name.git
将本地仓库关联远程仓库(按实际地址修改后面的地址名称,ssh协议地址或是https协议地址均可,ps:ssh协议更快)
- git push -u origin master
第一次将本地仓库代码推送到远程仓库时使用的命令
- git push origin master
将本地仓库修改的代码推送到远程仓库
- git clone git@server-name:path/repo-name.git
将远程仓库代码克隆到当前文件夹下(按实际地址修改后面的地址名称,ssh协议地址或是https协议地址均可)
- git branch 分支名称
创建分支
- git branch
查看所有分支及当前分支
- git branch -d 分支名称
删除指定分支(PS:不可删除当前工作区所在分支)
- git branch -D 分支名称
如果需要删除的分支未合并,是不能删除的,把参数改为大写的D,即可删除
- git checkout 分支名称
切换分支
- git checkout -b 分支名称
创建并切换到该分支
- git merge 分支名称
将命令中指定的分支,合并到当前分支
- git log --graph --pretty=oneline --abbrev-commit
查看分支合并情况记录
- git merge --no-ff -m "commit描述信息" 分支名称
合并分支时禁用“fast forward”模式,并对合并操作创建一个新的commit,保留分支信息
- git stash
将当前工作内容暂时保存起来,保存在一个stash列表里,并将当前分支的工作区还原成未修改的状态
- git stash list
查看所有stash存储的记录列表(不区分分支,其他分支保存的stash,在当前分支也能看到)
- git stash apply
还原最后一次保存的stash状态至当前分支工作区,不清除该条stash记录
- git stash apply stash记录标识 例如:git stash apply stash@{1}
还原指定stash状态至当前分支工作区,不清除该条stash记录
- git stash drop
删除stash列表中第一条记录(最后一次保存的stash)
- git stash drop stash记录标识 例如:git stash drop stash@{1}
删除stash列表中指定记录
- git stash pop
还原最后一次保存的stash状态至当前分支工作区,并清除该条stash记录
- git stash clear
清空stash记录
- git remote
查看远程仓库对应的名称
- git remote -v
查看远程仓库的详细信息,包括抓取和推送的远程仓库的地址
- git push 远程仓库名称 分支名称 例如:git push origin master
将本地分支代码推送到远程仓库
- git pull
从远程仓库上抓取最新代码
- git rebase
俗称“变基”, 把分叉的提交历史“整理”成一条直线,看上去更直观。
- git tag 标签名称 例如:git tag v1.0
给当前最新commit上打标签(可以打多次标签)
- git tag 标签名称 commit id 例如:git tag v1.0 f52c633
给指定commit添加标签
- git tag
查看所有标签(标签按字母排序,而非时间顺序排序)
- git show 标签名称
查看标签信息,包括commit id、提交的作者、提交的时间、提交的描述、提交修改的内容、标签说明等
-
git tag -a 标签名称 -m "描述文字" commit id 例如:git tag -a v0.1 -m "version 0.1 released" 1094adb
给指定commit添加带有说明的标签,-a指定标签名称,-m指定描述信息
- git tag -d 标签名称
删除标签
- git push 远程仓库名称 标签名称 例如:git push origin v1.0
将本地的某个标签推送到远程仓库
- git push 远程仓库名称 --tags
将本地所有未推送到远程仓库的标签一次性推送
- git push 远程仓库名称 :refs/tags/标签名称 例如:git push origin :refs/tags/v0.9
删除远程仓库的标签
- git add -f 文件名
如果某个文件被.gitignore文件忽略了,可以加上-f来强制添加到暂存区
- git check-ignore -v 文件名称
查看是.gitignore文件中的哪条规则忽略了该文件
- git config --global alias.别名 命令名 例如:git config --global alias.st status
给命令设置别名,例如设置st代表status,则git status可以写作git st,若后续想删除别名,在.git/config文件中找到[alias]后,删除别名对应的行即可
- touch .gitingore
在工作区中生成一个.gitignore文件