根底配置
作用范畴
配置失效范畴从小到大有三种,别离是 local
,global
,system
参数 | 作用范畴 |
---|---|
local | 对某个仓库失效 |
global | 对以后用户所有仓库失效 |
system | 对系统所有登录的用户失效 |
罕用配置
# 查看配置git config --global --list# 编辑配置git config -e [--global]# 设置提交代码时的用户信息git config --global user.name '[name]'git config --global user.email '[email address]'
解决中文乱码
# 解决中文乱码问题 git statusgit config --global core.quotepath false# 解决中文乱码问题 gitkgit config --global gui.encoding utf-8
敞开 TLS/SSL 验证(本地部署时罕用)
# To disable TLS/SSL verification for a single git commandgit -c http.sslVerify=false clone https://example.com/path/to/git# If the repository is completely under your control, you can try:git config --global http.sslVerify false
开启代理
# 只对github.comgit config --global http.https://github.com.proxy socks5://127.0.0.1:1080# 勾销代理git config --global --unset http.https://github.com.proxy
创立公钥
# 生成ssh_key密钥ssh-keygen -t rsa -C "your_email@example.com"# 生成ssh_key密钥(ED25519 算法)ssh-keygen -t ed25519 -C "your_email@example.com"# 将生成的公钥推送至服务器ssh-copy-id root@192.168.8.95# windows复制生成的公钥clip < ~/.ssh/# mac复制生成的公钥pbcopy < ~/.ssh/# Linux复制生成的公钥xclip -sel clip < ~/.ssh/
常用命令
获取帮忙
# 通过浏览器 查看命令git help --web [command]
初始化
# 初始化仓库git init
单个文件增删改
# 讲工作区的文件增加到暂存区git add [file]# 讲工作区所有曾经被git管控的文件提交到暂存区git add -u# 讲已被git治理的文件移除git治理git rm [file]# 变更文件名git mv [oldFileName] [newFileName]
提交版本
# 携带形容提交文件到版本历史库git commit -m 'description'# 讲工作区里的文件携带形容间接提交到版本历史库git commit -am 'description'# 提交时显示所有diff信息git commit -v
查看日志
# 查看HEAD挪动历史git reflog# 查看日志git log# 查看该分支的日志git log [branch]# 展示[number]条日志git log --n[number]# 查看全副分支的全副日志git log --all# 图形化展现日志git log --graph# 仅查看日志形容git log --oneline# 查看简要日志,适宜查看批改git log --stat# 查看具体日志,适宜做代码reviewgit log -p
查看改变内容
工作区比拟暂存区:git add
提交内容 git diff
暂存区比拟版本历史库上一条提交:git commit
提交内容 git diff --cached
工作区比拟版本历史库上一条提交:git commit -a
提交内容 git diff HEAD
# 比拟工作区和暂存区git diff# 比拟暂存区和上一条提交git diff --staged# 比拟暂存区和HEAD的差别git diff --cached# 比拟工作目录和上一条提交git diff HEAD# 比拟HEAD和HEAD的前n个git diff HEAD [HEAD-number]# 比拟HEAD和HEAD的父亲git diff HEAD HEAD^# 比拟HEAD和HEAD父亲的父亲git diff HEAD HEAD^^
查看提交改变内容
# 查看以后 commitgit show# 查看任意一个 commitgit show HASH
分支操作
# 创立/切换分支git checkout new# 创立并跳转到该分支git checkout new -b# 查看本地全副分支git branch -v# 查看全副分支git branch -av# 删除分支git branch -d new# 强制删除分支git branch -D new# 查看近程仓库地址git remote -v
变基
# 变基git rebase
理解命令
# 查看对象类型,(输出一段标识符,查看他是个什么)git cat-file -t
场景利用
设置远端存储
# 查看远端仓库git remote -v# 查看远端分支git branch -r# 设置远端仓库git remote add origin git@github.com:BingMG/java-program.git# 设置多个远端仓库git remote add github git@github.com:BingMG/java-program.git# 上传代码到远端分支git push github# 删除远端仓库git remote remove github# 设置多个远端仓库且同时上传git remote set-url --add origin git@github.com:BingMG/java-program.git
Github新建仓库命令
# …or create a new repository on the command lineecho "# java-program" >> README.mdgit initgit add README.mdgit commit -m "first commit"git branch -M maingit remote add origin git@github.com:BingMG/java-program.gitgit push -u origin main# …or push an existing repository from the command linegit remote add origin git@github.com:BingMG/java-program.gitgit branch -M maingit push -u origin main
本地与远端分支的联动
# 本地创立分支git checkout -b new# 远端创立分支并推送git push origin new# 删除远端分支git push origin --delete new# 先跳出将要删除的本地分支git checkout master# 删除本地分支(删除远端分支之前)git branch -d new# 删除本地分支(删除远端分支之后)git branch -D new
变更工作环境
# 保留工作环境git stash# 保留工作环境,包含git未管控的文件也增加到git管控git stash -u# 查看暗藏环境中保留的列表git stash list# 查看暗藏环境中保留的具体信息git stash show# 复原暗藏环境git stash pop
革除本地代码
# 革除暂存区的全副批改git reset# 革除工作区的全副批改git checkout .# 革除未被管控的文件,-n为预演模式git clean -n# 返回到某个节点, 保留批改到工作区。git reset --soft HASH# 返回到某个节点,不保留批改。git reset --hard HASH
代码写错了
无脑计划
# 平安操作,反转上上次的提交内容,造成commit,待推送至远端git revert HEAD^
本地提交还原
# 将须要批改的文件增加到git管控git add .# 批改本地最近一次提交的提交信息git commit --amend
远端提交还原
危险操作,实用单人单分支未被主分支合并场景。
# 本地批改实现之后,强制将本地版本库笼罩到远端git push origin branch -f
将已提交的文件移除git治理
须要先更新 .gitignore
文件,可通过命令行的形式间接更新
# 通过命令间接增加至git疏忽文件,留神门路和内容echo 'add file'>>.gitignore
执行移除操作
git rm -r --cached .git add .git commit -m 'update .gitignore'
依据用户获取输入行数
获取Wisom用户的输入,若须要查找其他人,更换用户名
git log --author="Wisdom" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
本文由博客一文多发平台 OpenWrite 公布!