git 常用命令

git warning: LF will be replaced by CRLF in 解决办法
git config core.autocrlf false


git config --global core.autocrlf false //禁用自动转换

生成公钥
ssh-keygen -t rsa -C "[email protected]"

查看公钥
cat ~/.ssh/id_rsa.pub

添加完公钥后在终端输入
ssh -T [email protected]


修改和添加远程仓库地址

git remote -v 查看所有远程仓库

git remote set-url origin http://test.git 修改origin仓库地址

git remote add public http://test.git 添加一个仓库地址,取名为public


查看日志

git log 显示当前分支的版本历史

git log --stat 显示提交历史,以及每次commit发生变更的文件

git log --oneline 显示提交历史精简版

git reflog 显示当前分支的最近几次提交

git log --oneline --author=zengchenhua 显示某个用户的提交历史

git log --follow [file] 显示某个文件的版本历史

git log -p [file] 显示指定文件相关的每一次diff

git log -5 --oneline 显示过去5次是提交

git shortlog -sn 显示所有提交过的用户,按提交次数排序

git blame [file] 显示指定文件是什么人在什么时间修改过

git diff 显示暂存区和工作区的代码差异

git diff --cached [file] 显示暂存区和上一个commit的差异

git diff HEAD 显示工作区与当前分支最新commit之间的差异

git diff [first-branch]...[second-branch] 显示两次提交之间的差异

git diff --shortstat "@{0 day ago}" 显示你今天写了多少行代码

git show [commit] 显示某次提交的元数据和内容的变化

git show [commit]:[filename] 同上,指定到文件


完整提交

git status -s

git add .

git commit -m "提交"

git fetch origin master

git merge origin master

git push origin master


git commit -v 提交时显示所有diff信息


image.png

Workspace 工作区

Index 暂存区

Repository 仓库区(或本地仓库)

Remote 远程仓库


回退版本

HEAD 最近一次commit Index 暂存区 Working Copy 工作区

--hard 是彻底回退 --mixed 回退commit和index信息,工作区不变 --soft 只撤销commit 工作区和暂存区都不变(add还有效)

git reset HEAD filename(git reset file) add了多余的文件,取消那个文件的add 工作区不变

git reset HEAD^ 回退所有内容到上一个版本 工作区不变

git reset --hard 指针id 回退到指定commit

git reset --hard 回退到上次commit

git reset --hard HEAD^(HEAD~1) 回退到上一次commit ^^是回退到上上次,以此类推

git reset --hard origin/master 将本地状态回退到和远程一样


分支操作

git branch -b new-branch-name 新增分支

git branch 列出本地分支

git branch -a 列出所有本地分支和远程分支

git branch -d branch-name 删除一个已被终止的分支

git branch -D branch-name 删除一个正在打开的分支

git branch branch-name hash-val 恢复被删除的分支 如:git branch master HEAD@{4}


添加忽略文件

已有的文件增加为忽略文件

先正常加到gittignore,走提交流程再

git rm -r --cached filename

git commit -m "提交"


设置用户信息(免密提交)

git config --global credential.helper store

git pull/git push(这里输入一次,以后就不用了)

或者git clone http://user:[email protected]

git config -e --global 编辑配置文件

git config --global user.name "name" 设置提交代码时的用户名

git config --global user.email "email adddress" 设置用户邮箱


fatal: refusing to merge unrelated histories 问题解决

原来命令后加上:--allow-unrelated-histories


tag 使用

git tag 查看tag

git show tagname 查看某个tag的详细信息

git ls-remote --tags origin 查看远程tag

git tag -d tagname 删除本地tag

git push origin :refs/tags/tagname 删除远程tag

git tag tagname 创建本地tag

git tag -a tagname -m "tag描述" 创建带描述的的tag

git tag -a tagname commId 以某一次特定的提交创建tag

git push origin tagname 推送到远程仓库

git push origin --tags 多个tag一次性推送到远程仓库

git checkout -b tabname 获取本地tag

git fetch origin tag tagname 获取远程tag

你可能感兴趣的:(git 常用命令)