git常用命令

参考

查看修改日志内容,使用

git log  -p

git log详细使用参数,查看某个文件修改具体内容_helloxiaozhe的博客-CSDN博客_git log查看修改的文件

git rebase

你真的懂git rebase吗? - 简书

git merge和git rebase的区别, 切记:永远用rebase - 知乎

git rebase 后再git merge

  1. rebase之前需要经master分支拉到最新

  2. 切换分支到需要rebase的分支,这里是dev分支

  3. 执行git rebase master,有冲突就解决冲突,解决后直接git add . 再git rebase --continue即可

此时的git log如下

切换到master分支,执行git merge dev



作者:0爱上1
链接:https://www.jianshu.com/p/6960811ac89c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

git restore --staged  .
git reset HEAD

git config --global core.editor vim         


如果想将提交到暂存区的代码,直接撤回来,最方便的是输入git reset命令。该命令或者输入git reset HEAD效果一样。此步骤会将代码撤销到执行git add .前的状态,如下图所示:

git代码撤销回滚只看这一篇就足够了!_代码回退_茁壮成长的凌大大的博客-CSDN博客

git pull --tags

 git merge --abort                                                                                                                                                                 

Pro Git(中文版)

Git教程 - 廖雪峰的官方网站

详细介绍git clone --depth=1的用法_白马金羁侠少年的博客-CSDN博客_depth

git clone --depth 1 https://github.com/labuladong/fucking-algorithm.git
 

  • 用 git clone --depth=1 的好处是限制 clone 的深度,不会下载 Git 协作的历史记录,这样可以大大加快克隆的速度
  • depth用于指定克隆深度,为1即表示只克隆最近一次commit
  • 适合用 git clone --depth=1 的场景:你只是想clone最新版本来使用或学习,而不是参与整个项目的开发工作

1. 以master为母板添加新的远程分支

git pull
git push origin master:develop
#develop就是新分支

git push  dv   master:bak
git push  dv   dv:bak


#创建本地分支develop
git checkout -b  develop  origin/develop
git checkout -b  4.4  origin/release/4.4

#
 git checkout -b   m84-v23.2  origin/m84-v23.2
 git push dv m84-v23.2:m84-v23.2

长期存储密码:
git config --global credential.helper store

git config --global --list
git config --global user.name "name"
git config --global user.email "xxx@xxx.com"

本地分支关联远程 分支

git branch --set-upstream-to=origin/webrtc-new   webrtc-new 
 

2. 合并两个远程分支   master   和  ddz

git pull

git merge   origin/master            (当前是ddz分支)
git push origin  HEAD:ddz

3. git url变了,修改新的url地址

sshkey,clone的:
      git remote set-url origin git@10.0.3.201:probe/sinffer_mos.git
用户密码,clone的:
      git remote set-url origin http://10.0.3.201/gitlab/probe/sinffer_mos.git

4. git回滚到某个版本

#慎用这个命令
git reset --hard commit_id

git push  --force


git revert与reset的区别是git revert会生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留,也就是说对于项目的版本历史来说是往前走的。而git reset 则是回到某次提交,类似于穿越时空。


对于最后一种情况,考虑到其他人的版本历史,使用git reset [commit]是不建议的,此时我们应该使用git revert [commit]改命令不会修改之前的提交历史,相当于对数据做了一次逆操作,然后再执行add,commit等命令。

对于前三种情况,虽然git revert也适用,但是如要要保持版本历史干净的话,建议还是用 git reset3,但是希望保留完整的历史的话,还是使用git revert为好。对于和其他人协同的项目,使用git rever是最好的。

5.git撤销

执行commit后,还没执行push时,想要撤销这次的commit,该怎么办?

git commit后,如何撤销commit - 简书

git reset --soft HEAD^

git status 先看一下add 中的文件 
git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

6. git隐藏,如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:

git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
git diff -w business/asset/urls.py  和   git diff business/asset/urls.py         效果一样

推送本地新分支到gitlab仓库
$ git push origin async

git推送到自己的github

git init
git add *
git commit  -m "first commit"
git remote add origin https://github.com/xxxxx/xxxxxxxxxxx.git
git push -u origin master

文件去除git版本控制

find . -name ".git" | xargs rm -Rf

查看代码是谁写的

git blame -L 30,35 filename

查看git上的个人代码量:

[Git] git代码统计 - demoblog - 博客园

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 config

Git 运行配置(git config、gitk、git gui) - 简书

 git config  -l

 git revert 

git revert实战_secretx的专栏-CSDN博客_git revert

git revert commit4   #恢复到某个版本
 git revert --abort  #终止恢复

revert过程有可能遇到冲突,要么git revert --abort终止此次revert操作,代码还原至revert命令前。要么手动消除冲突(同普通的冲突解决),然后add commit

git tag

通过git describe --tags 查询当前branch是从那个tag建立的

通过git describe --tags 查询当前branch是从那个tag建立的_jason的笔记-CSDN博客_gitlab查看tag基于哪个分支

2.6 Git 基础 - 打标签

Git - 打标签

Git 系列之tag的用法---为你的代码标记版本号

Git 系列之tag的用法---为你的代码标记版本号_da_caoyuan的博客-CSDN博客_代码tag什么意思

git checkout  -b  v26.1.2  26.1.2
Switched to a new branch 'v26.1.2'

Git以一个远程分支为基础新建一个远程分支

Git以一个远程分支为基础新建一个远程分支_jiekou0376的博客-CSDN博客_git创建远程分支

例如现在有两个分支,master和develop

git checkout master //进入master分支

git checkout -b frommaster //以master为源创建分支frommaster

git checkout develop //进入develop分支

git checkout -b fromdevelop //以develop为源创建本地分支fromdevelop

git push origin fromdevelop //将本地fromdevelop分支作为远程fromdevelop分支

合并fromdevelop分支到develop分支上:

首先切换到develop分支,再执行: git merge fromdevelop

Please enter a commit message to explain why this merge is necessary.

请输入提交消息来解释为什么这种合并是必要的

git 在pull或者合并分支的时候有时会遇到这个界面。可以不管(直接下面3,4步),如果要输入解释的话就需要:

1.按键盘字母 i 进入insert模式

2.修改最上面那行黄色合并信息,可以不修改

3.按键盘左上角"Esc"

4.输入":wq",注意是冒号+wq,按回车键即可

git push origin :fromdevelop   //删除远程fromdevelop分支

PS:

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

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

$ git branch -d <BranchName>      // 删除本地分支 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值