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 "xxxxx@xxxxx.com"
查看公钥
cat ~/.ssh/id_rsa.pub
添加完公钥后在终端输入
ssh -T git@gitee.com
修改和添加远程仓库地址
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:pwssword@test.git
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
网友评论