参考
查看修改日志内容,使用
git log -p
git log详细使用参数,查看某个文件修改具体内容_helloxiaozhe的博客-CSDN博客_git log查看修改的文件
git rebase
git merge和git rebase的区别, 切记:永远用rebase - 知乎
git rebase 后再git merge
-
rebase之前需要经master分支拉到最新
-
切换分支到需要rebase的分支,这里是dev分支
-
执行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 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 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 系列之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> // 删除本地分支