git

打标签
git tag -a 1.1.6 -m "1.1.6"
git push origin 1.1.6

删除标签

git tag -d 1.1.6
git push origin :refs/tags/1.1.6  # 删除远程仓库上的标签

用两行命令删除分支
// delete branch locally
git branch -d localBranchName

// delete branch remotely
git push origin --delete remoteBranchName

也可以使用这行简短的命令来远程删除分支:git push :,比如:git push origin :fix/authentication

基于某提交点创建分支:git checout -b <new_branch_name>  <commid_id>

git rm -r --cached <file_or_dir> 忽略已跟踪的文件

解决 git gui 乱码: git config --global gui.encoding utf-8

git checkout -b 分支名创建新分支
git push origin master:新分支名创建新分支
git commit --amend 修改最后一次提交

git reset HEAD benchmarks.rb 或 git reset -- filename 取消已经暂存的文件
git reset HEAD~1 或 git reset HEAD^ 回滚最近一次提交

git checkout -- benchmarks.rb
git checkout -- benchmarks.rb 工作区中取消对文件的修改(将会删除刚才的修改,无法恢复)

git diff 工作区尚未暂存内容和暂存区的差异
git diff --cached 或 git diff --staged 暂存区和仓库的区别
git diff HEAD 显示工作区和 HEAD 的区别
git diff topic master 或 git diff topic..master 两个分支上最新的提交做 diff
git diff topic...master 输出自 topic 和 master 分别开发以来,master 分支上的 changed
git diff test 查看当前目录和另外一个分支的差别
git diff HEAD^ HEAD 比较上次提交 commit 和上上次提交
git diff SHA1 SHA2 比较两个历史版本之间的差异
git diff HEAD -- ./lib 显示当前目录下的 lib 目录和上次提交之间的差别(更准确的说是在当前分支下)

git rm xx.txt 删除文件如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
git rm --cached readme.txt 把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然保留在当前工作目录中

git log --pretty=format:"%h - %an, %ar : %s" lib/bll/haofangbao.php

git pull --rebase origin app_project_debug

git blame 文件名会显示每一行最后一次改动

git reset --hard 撤销合并

git blame lib/dao/common/errordao.php|grep ""

git config --global credential.helper store 输入前执行下,以后输入一次密码,即可永久记住

git fetch
git merge origin/hfb_project_228 合并远程分支

git rebase --continue
git rebase --abort

git clearn -fd

git config --global core.excludesfile ~/.gitignore_global Git 设置全局忽略文件

[alias]
co = checkout
ci = commit
br = branch
st = status

  1. 对于已经加入版本控制的文件,需要命令来强制忽略
    如果不小心 config.xml 文件被同事加入版本库了,可以用如下命令强制忽略这个文件:
    git update-index --assume-unchanged config.xml
    这样,即使已经更改了文件,用 git status 也不会看见文件已经更改。
    取消这种设定可以使用如下命令:
    git update-index --no-assume-unchanged config.xml

https://segmentfault.com/q/1010000000430426 可参考

git https 记住密码
设置记住密码(默认 15 分钟):
git config --global credential.helper cache
如果想自己设置时间,可以这样做:
git config credential.helper 'cache --timeout=3600'
这样就设置一个小时之后失效
长期存储密码:
git config --global credential.helper store

git 导出新修改的命令
git archive -o update.zip HEAD $(git diff --name-only HEAD)

撤销 git add
如果是撤销所有的已经 add 的文件:
git reset HEAD .如果是撤销某个文件或文件夹:
git reset HEAD -filename

撤销 git commit
在 git push 的时候,有时候我们会想办法撤销 git commit 的内容
1、找到之前提交的 git commit 的 id
git log
找到想要撤销的 id
2、git reset –hard id
完成撤销,同时将代码恢复到前一 commit_id 对应的版本
3、git reset id
完成 Commit 命令的撤销,但是不对代码修改进行撤销,可以直接通过 git commit 重新提交对本地代码的修改

git 忽略已跟踪的文件
git update-index --skip-worktree qq_core/src/main/scala/com/qq/net/MessageDecoder.scala
git update-index --no-skip-worktree qq_core/src/main/scala/com/qq/net/MessageDecoder.scala

要查看 Git 的提交历史

基础查看

git log

这会显示提交历史,默认按时间倒序排列,最新的提交在最上方。每条提交信息通常包括提交哈希(commit hash)、作者名、日期、提交信息等。

简洁模式

git log --oneline

此命令以简洁模式显示历史,每条提交记录只显示一行,通常包括哈希值和提交信息。

图形化展示

git log --graph

这会在输出中加入图形,帮助可视化分支和合并的历史。

显示统计信息

git log --stat

显示每次提交中修改的文件数量和行数的统计信息。

指定作者

git log --author="用户名"

只显示指定作者的提交记录。

搜索提交信息

git log --grep="关键词"

查找提交信息中包含指定关键词的提交记录。

限制显示数量

git log -n 5

限制显示最近的 5 条提交记录。

查看指定文件的修改历史

git log -- <文件路径>

查看特定文件的修改历史。

Git 全局设置
git config --global user.name "王威士"
git config --global user.email " wangweishi@greenvalleypharm.com "

创建一个新仓库
git clone http://192.168.0.97:8099/wangweishi/qikang_shop.git
cd qikang_shop
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

推送现有文件夹
cd existing_folder
git init
git remote add origin http://192.168.0.97:8099/wangweishi/qikang_shop.git
git add .
git commit -m "Initial commit"
git push -u origin master

推送现有的 Git 仓库
cd existing_repo
git remote rename origin old-origin
git remote add origin http://192.168.0.97:8099/wangweishi/qikang_shop.git
git push -u origin --all
git push -u origin --tags

修改远程地址并推送现有仓库
git remote set-url origin git@gitee.com :xigexige/ztjs.git
git push -u origin --all
git push -u origin --tags

ssh-keygen -t rsa -C " wangweishi@green-valley.com "

git 仓库迁移命令

  1. 生成本地 SSH 秘钥 ssh-keygen -t rsa -C " xxx@green-valley.com "
  2. 找到 id_rsa.pub 文件,复制秘钥后到 git 平台“个人账户设置/SSH 公钥”菜单添加新的公钥
  3. 修改仓库地址 git remote set-url origin git@xxx.com :xxx/xxx.git
  4. 推送本地所有分支和里程碑到远程仓库(注意必须执行下面两个命令,否则并非完全推送)
    git push -u origin --all
    git push -u origin --tags