git常用命令大全
- 查看log
- 对比当前修改
- 查看当前修改状态
- 重置当前分支到最新分支
- 历史log
- 提交修改到暂存区
- 查看工作区和版本库里面最新版本的区别
- 让文件内容回到最近一次git commit或git add时的状态
- 清理项目
- 查看分支
- 切换分支
- 最新的提交从远程分支抓下来
- 标签添加
- 查看所有标签
- 查看标签信息
- 创建带有说明的标签
- 用私钥签名一个标签
- 删除 打错的标签
- 推送某个标签到远程
- 推送所有标签到远程
- 删除远程的标签
- 创建ssh并连接git客户端
- 检测ssh是否正常
- 本地与git远程库做关联
- 推送分支到远程
- git 推送分支相关配置
- 从远程克隆项目
- 切换分支
- 合并分支
- 创建分支
- 创建+切换分支
- 合并某分支到当前分支
- 删除分支
- 查看分支合并图
- 禁用Fast forward 模式 可以显示 合并后的log
- 储藏当前工作区的代码
- 查看储存
- 恢复储存
- 删除存储
- 恢复的同时删除存储
- 恢复指定存储
- 强行删除本地分支
- 产看远程信息
- 给命令起别名
- 设置git用户名字邮箱
- 查看git配置
- 下载代码到本地,不进行合并操作
- 强制更新,忽略本地
- 文件加入版件和文件夹不提交
- 文件 add 了 ,但是add 错文件了,需要把文件从 stage移除
- 文件add 加入到 commit respository 了 。不想加了。(文件被还原成 modified)也就是add 之前的状态
- 本地分支重命名
- 查看当前的git commit 的详细信息
- 查看指定文件 不同分支差异
- 文件改动查看
- 将远程仓库的分支拉到本地(本地没有这个分支)
- 重新编写当前commit 注释(没有提交push)
- 忽略已经被提交的 文件
- 用其他分支 强制覆盖当前分支 并且强制 更新 当前线上分支
- add 和 commit 一起执行
- 解决部分报错
查看log
git log
git log --pretty=online
对比当前修改
git diff
查看当前修改状态
git staus
重置当前分支到最新分支
git reset --hard HEAD^
git reset --hard 2132131 (版本号) //回退d到指定版本 git reflog 查看历史log
历史log
git reflog
提交修改到暂存区
git add .
git add file_name
查看工作区和版本库里面最新版本的区别
git diff HEAD file_name
让文件内容回到最近一次git commit或git add时的状态
git checkout file_name
git checkout . // all
清理项目
git clean -f -d
命令 git clean 作用是清理项目,-f 是强制清理文件的设置,-d 选项命令连文件夹一并清除。
查看分支
git branch
切换分支
git checkout -b branch_name
最新的提交从远程分支抓下来
git pull
标签添加
git tag v1.0
git tag v0.9 +版本ID号
查看所有标签
git tag
查看标签信息
git show v0.9
创建带有说明的标签
git tag -a v1,1 -m '....' +版本ID号
用私钥签名一个标签
git tag -s v0.2 -m "signed version 0.2 released" fec145a
#签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错
删除 打错的标签
git tag -d v1.0
推送某个标签到远程
git push origin v1.0
-f 强制更新
推送所有标签到远程
git push origin --tags
删除远程的标签
git tag -d v0.9 #删除本地
git push origin :refs/tags/v0.9 #从远程删除
创建ssh并连接git客户端
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C “邮箱”
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
点“Add Key”,你就应该看到已经添加的Key。
检测ssh是否正常
ssh -T git@github.com
本地与git远程库做关联
git remote add origin <link_name>
推送分支到远程
git push -u origin master
git push origin master
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。 -f 强制推送上去。
git 推送分支相关配置
git config --global push.default simple
git push --set-upstream origin master
git 命令push的默认模式为simple 当我们执行 git push 没有指定分支的时候,自动使用当前分支,而不是报错。
从远程克隆项目
git clone <line_name>/<project_name>
切换分支
git checkout master
合并分支
git merge dev
创建分支
git branch <name>
创建+切换分支
git checkout -b <name>
合并某分支到当前分支
git merge <name>
删除分支
git branch -d <name>
需要在其他分支上才能删除分支
git push origin --delete <name>
查看分支合并图
git log --graph
禁用Fast forward 模式 可以显示 合并后的log
git merge --no--ff -m '....' dev
储藏当前工作区的代码
git stash
查看储存
git stash list
恢复储存
git stash apply
删除存储
git stash drop
恢复的同时删除存储
git stash pop
恢复指定存储
git stash apply stash@{0}
强行删除本地分支
git branch -D <branch_name>
产看远程信息
git remote -v
给命令起别名
git config --global alias.st status
删除别名请到 .git/config 里面去删除
设置git用户名字邮箱
git config --global user.name 'your name'
git config --global user.email your@example.com
查看git配置
git config --system --list
下载代码到本地,不进行合并操作
git fetch --all
强制更新,忽略本地
git fetch --all 下载远程仓库最新内容,不做合并
git reset --hard origin/master 指令把HEAD 指向master 最新版本
git pull
文件加入版件和文件夹不提交
git update-index --assume-unchanged path/file_name
加入到 .gitignore 文件
文件 add 了 ,但是add 错文件了,需要把文件从 stage移除
git rm --cached <file_path/file_name>
文件add 加入到 commit respository 了 。不想加了。(文件被还原成 modified)也就是add 之前的状态
git reset HEAD app/cc.php
本地分支重命名
git branch -m oldbranchname newbranchname
查看当前的git commit 的详细信息
git show
git show <commitId>
查看指定文件 不同分支差异
git diff dev dev2 admin/index.php
文件改动查看
git diff <commitID> <commitID> --stat 对比两个版本
git diff <branch_name> <branch_name> --stat 对比两个分支
git diff tag1 tag2 --stat 对比两个tag 之间的文件差异
git log -p <file_name> 查看一个文件的具体改动记录
将远程仓库的分支拉到本地(本地没有这个分支)
git checkout -b dev2 origin/dev2
重新编写当前commit 注释(没有提交push)
git commit --amend
忽略已经被提交的 文件
git update-index --assume-unchanged <file_name>
用其他分支 强制覆盖当前分支 并且强制 更新 当前线上分支
git checkout <branch_name>
git reset --hard origin/master
git push -f origin <branch_name>
add 和 commit 一起执行
git commit -am '....'
解决部分报错
- 解决Git-warning: CRLF will be replaced by LF in XXX .
git config core.autocrlf false 禁用自动转换