//查看已经提交的文推
git  log  --stat  

//将暂存区的文件从暂存区撤出,但不会更改文件的内容
git restore --staged 

//文件名或文件夹名 解决在git add  git commit 解决.gitignore中加入没有提交的文件出现在暂存取的时候
git rm -r --cached

// 查看远程仓库到本地的commit文件
git ls-files

// 将某一个文件暂存
git add  文件名

// 暂存当前所有的文件
git add .    

//跳过缓存区操作,直接把工作区内容提交到本地仓库
git commit -a -m "提交说明"   

// 对比暂存区和之前代码的比较
git diff --cached  

# 工作区与暂存区的差异
git diff 

# 工作区与某分支的差异,远程分支这样写:remotes/origin/分支名
git diff 分支名 

# 工作区与HEAD指针指向的内容差异
git diff HEAD  

# 工作区某文件当前版本与历史版本的差异
git diff 提交id 文件路径 

# 工作区文件与上次提交的差异(1.6 版本前用 --cached)
git diff --stage 

# 查看从某个版本后都改动内容
git diff 版本TAG 

# 比较从分支A和分支B的差异(也支持比较两个TAG)
git diff 分支A 分支B 

# 比较两分支在分开后各自的改动
git diff 分支A...分支B 

**代码回滚**
//从暂存区变成更改文件区
git reset --hard HEAD 

//commit之后会推到暂存区
git reset --soft HEAD^

# 恢复成上次提交的版本
git reset HEAD^ 

# 恢复成上上次提交的版本,就是多个^,以此类推或用~次数
git reset HEAD^^

 //最近的一次提交到git上的 恢复到暂存区
 git reset HEAD~1
 git reset —hard  版本号 


git reflog 查看提交版本

//代码强制提交覆盖之前的代码 (慎用 会覆盖之前的代码)
git push -f origin  test  

// 代码强制合并
git merge 分支名  --allow-unrelated-histories

//查看所有的提交记录
git log --pretty=oneline

// 从远程出仓库master拉取最新代码,并在本地建立一个tmp分支,git diff tmp进行对比之后 然后在git merge tmp 进行合并这种步骤比较保险一些
git fetch origin master:tmp

//对比当前master分支和test_1.1分之每个文件代码是否一样
git checkout --patch test_1.1  /Users/XXXXXX/Desktop/portal-web/src

//查看远程仓库地址
git remote -v 

//提交本地分支作test为远程分支test
git push origin test:test

//删除本地分支test
git branch -d test 

//删除远程分支test
git push origin —delete test

//设置密钥
ssh-keygen -t rsa -C "jay@******.com”.  
//取消每次git pll 和git push时输入密码
ssh-keygen -p
//查看密钥 
cat .ssh/id_rsa.pub    

//拉取或者推送前使用命令
git config --global credential.helper store

//拉取或推送(避免以后每次提交都需要输入账号密码)
git pull /git push (这里需要输入用户名和密码,以后就不用啦)

// 将本地分支推送到新的远程分支
git add .
git commit -m '项目初始化'
git remote add origin git@gitlab.com:spring407/springcloud-001.git

//统计代码行数 过滤掉注释
find src/pages -name "*.jsx" |xargs cat|grep -v -e ^$ -e ^\s*\/\/.*$|wc -l  

//统计某个工程所有用户代码提交的次数
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r

//统计某天提交的代码次数
git log --pretty=format:'%cd' --date=short | uniq -c

// 统计所有开发人员在工程中修改或新增代码的行数
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --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 }' -; done

// 统计某个开发人员在项目工程中修改的那些代码
git log --author='jaycox' --pretty=format:'date: %ad %ncommit: %h %nauthor: %an %n%s' --date=format:'%Y-%m-%d %H:%M:%S' --stat

git config pull.rebase false
git config pull.rebase true

Git 在执行 git pull 命令时默认使用 merge 而不是 rebase。 git pull 命令是将远程分支的更新合并到本地分支,如果本地分支有更新,则会自动执行合并操作。默认情况下,git pull 命令会使用 rebase 的方式来合并分支,使用 rebase 的好处是可以保持提交历史的线性,避免了 merge 产生的分支合并记录。但是,如果在多人协作的项目中使用 rebase,可能会破坏提交历史,导致代码冲突,因此需要谨慎使用,通过设置 git config pull.rebase false,Git 将默认使用 merge 的方式来合并分支,从而避免了 rebase 带来的潜在问题。 需要注意的是,如果在执行 git pull 命令时指定了 --rebase 选项,则 Git 会优先使用 rebase 的方式来合并分支,而不受 git config pull.rebase 的设置影响。因此,如果需要强制使用 merge 的方式来合并分支,可以在执行 git pull 命令时添加 --no-rebase 选项

git相关配置

# --global可换成--local在单独项目生效

# 设置用户名
git config --global user.name "用户名" 

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

# 查看用户名是否配置成功
git config --global user.name   

# 查看邮箱是否配置
git config --global user.email   

# 查看全局设置相关参数列表
git config --global --list  

# 查看本地设置相关参数列表
git config --local --list 

# 查看系统配置参数列表
git config --system --list 

# 查看所有Git的配置(全局+本地+系统)
git config --list 

# 显示git相关颜色
git config --global color.ui true

# git修改当前项目仓库地址的三种方法
git remote -v                       // 查看git对应的远程仓库地址
git remote rm origin                // 删除关联对应的远程仓库地址
git remote -v                       // 查看是否删除成功,如果没有任何返回结果,表示OK
git remote add origin "新的仓库地址" // 重新关联git远程仓库地址

# 直接修改本地仓库所关联的远程仓库的地址
git remote  					 		   // 查看远程仓库名称:origin 
git remote get-url origin                  // 查看远程仓库地址
git remote set-url origin "新的仓库地址"    // ( 如果未设置ssh-key,此处仓库地址为 http://... 开头)


# 修改 .git/config 配置文件
cd .git      // 进入.git目录
vim config   // 修改config配置文件,快速找到remote "origin"下面的url并替换即可实现快速关联和修改

关于git:无法删除远程源
vim .git/config
// 如下 修改对应的url 然后保存就可以了

gitlab 代码量 gitlab代码统计_gitlab 代码量