git常用命令

git reflog show --date=iso <branch name> 分支创建时间

#git 如何实现vimdiff

git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool

然后使用 git d 打开对比代码,然后用 :wq 继续比较下一个文件。

git d hashid

MERGING

git reset --hard head

 

Git 修改comment

Git 是全量,每个版本都包含所有文件

git diff Makefile2 Makefile > make.patch

addcommitpush三步曲;

git add file1

git commit -m "file1"

git push origin master

 

配置账户:

git config user.email luopandeng@uniontech.com

git config user.name ut002579

git clean -df 想批量删除branch中新加的文件

git fetch --tags -f

 

日志:

git log --short

git log --oneline --gragh

git log --stat 每次提交的简略统计信息

git log  -2 最近两次提交记录

git log -p -2 最近两次修改

git log filename

git log -p filename

 

 

git show 6b14b5883e5a03d5e2110eb78633f622e81a36ac 文件路径

git show 6b14b5883e5a03d5e2110eb78633f622e81a36ac

git checkout 文件名 放弃本地修改(未commit

git show 查看本地commit 内容

git checkout 分支名

git reflog show v8.9.255.24 查看分支从哪个分支拉出来

GIT_TRACE=2

初始化并推送到远端

git init

git add .

git config --global user.email "20733925@qq.com"

git config --global user.name "luopandeng"

--global 给当前用户一次性设置

--system 给所有用户一次性设置

--local 给当前项目一次性设置

git commit -m "chromium-89.0.4389.114 初始化"

git remote add origin https://gitlabcd.uniontech.com/ut002579/chromium-89.0.4389.114-debian-ft2000plus.git

git push -u origin master

git push origin origin/security-devolop:security-devolop

git push origin security-devolop-remain-elfverify-follow_m_master

git merge remotes/origin/security-devolop 更新分支到本地

git config --global --unset http.proxy

git config --global --unset https.proxy

./scripts/checkpatch.pl --ignore FILE_PATH_CHANGES -g HEAD

Signed-off-by: luopandeng

git format-patch bfb49196eb

Git :

modified 已经修改

Staged 已暂存

Commit 已经提交

工作区-》add->暂存区->commit->对象区

Git rm --cached 从暂存区删除,退回工作区

修改一个commit的文件,则该文件回退到工作区

Shift+zz

Ctrl+a

Ctrl+e

Git commit -am "xxx" 合并am操作

Git reset head, 将文件从暂存区还原到工作区

.gitignore

Git rm xx, 文件被放到暂存区, 然后再执行 git commit , 文件才真正删除

直接用rm 命令删除,需要再执行git add, git commit

Git rm xx 后悔:git reset head xxx, 再执行 git checkout -- xx

重命名问题:

Git mv a b,

原理是复制一份,然后删除原来的

利用 git rm 与 rm 的区别是, git rm执行完之后 直接进入暂存区

重写提交说明:

Git commit --amend -m “xx” 重写上次说明,修改最后一条注释

分支

git branch xxxx 创建分支

git branch -d tmp 删除本地分支, (不能删除当前分支,必须切出去)

git branch -D tmp 强制删除

Git checkout xxx 切换分支

git push origin --delete tmp 删除远端分支

分支存在未合并的内容,不能删除

Git checkout -b xxx  创建并切换分支

Git branch -v 看到每个分支最近一次提交

分支合并

Git merge new_branch

在工作区的中的增加 删除 修改,如果我们切换到别的分支,这些修改还在

Head  : cat  .git/head

Get merge 默认使用fast-forward,两个分支归于一点,merge会丢失分支信息

Git merge --no-off  xxx_branch 不使用fast-forward,主动合并的会向前一步,merge不会丢失分支信息,

merge冲突:

两个分支同时修改同一个文件的同一行,

执行git merge ->出现merging->修改冲突->git add->git commit (这个add 是解决冲突,并不是加到暂存区)

如果一方落后,另一方前进一步,则merge的时候使用fast-forward不会冲突

版本回退 穿梭:

Git reset --hard HEAD^ 倒退一步

Git reset --hard HEAD~n 倒退n步

Git reset --hard sha1

后悔回退:

Git reflog,再根据sha1,执行 Git reset --hard sha1

Checkout:

Git checkout xxx_file 放弃工作区

Git reset HEAD file , 把暂存区回退到工作区

版本游离:

Git checkout sha1

Git branch -m branch1 branch2

没有commit ,不能切分支

保存现场:

没有commit ,不能切分支

Git stash, 保存现场,然后再切出分支,切回来的时候需要恢复,

Git stash list 查看保存的list

Git stash pop 恢复之前保存的现场

Tag:

Git tag v1.0 创建tag

Git tag -d v1.0 删除tag

Tag 是针对整个项目的,不正对分支

Git diff: 比较的是区中的文件

如果暂存区不为空,比较暂存区和工作区

比较对象区和工作区: git diff sha1  git diff head

比较暂存区和对象区: git diff --cached sha1

Pull:拉下来,并且合并

Pull = fetch + merge

gitk

Orgin/master 这个是一个只读分支, 保存的是远程的master内容,不要修改这个分支的内容

Git remote show origin

Pull-> 解决冲突-》 Git add-》git commit

Git branch -av

Git checkout -b dev origin/dev 基于origin/dev创建新的分支,和origin/dev关联起来

Git pull origin ccc2:ccc3 把远端ccc2 更新到本地ccc3

Git fetch origin master:refs/remotes/origin/helloworld 将远程master更新到helloworld

Git  sibmodule add xxx(地址), pull 命令必须进入到B里面pull 才有

Cherry-pick 每次只能转移一个点

Rebase

rebase冲突,vi…add…commit …git rebase --continue

Git rebase --skip 放弃修改,直接使用别人的,每次只放弃一笔merge

Git rebase --abort 还原之前场景,放弃rebase

multiple bugchecks seen,But most seen as

SYSTEM_THREAD_EXCEPTION_NOT_HANDLED,

Which caused by object double remove, We can not find why the object

double removed,So I add check before the object remove.

 gitk --simplify-by-decoration  qat_2.0_lin_protected_dev_2210 win_uq_dev branch 之间的关系

 gitk --simplify-by-decoration  main  qat_2.0_win_dev_QAT20-22807-4 之间的关系

在没有进行push之前可以采用如下方法进行commit的撤销

–mixed

git reset HEAD^

不删除工作空间提交的代码,撤销 commit,并且撤销 git add . 操作。

注意:-mixed 为默认参数。git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

–soft

git reset --soft HEAD^

不删除工作空间提交的代码,撤销 commit,但不撤销 git add . 操作。

注意:就是说仅仅是撤回提交,修改的代码仍然保留在本地仓库。

–hard

git reset --hard HEAD^

删除工作空间提交的代码,撤销 commit,并且撤销 git add . 操作。op

注意:就是说即撤回后,本地提交的代码也不保留。就等于恢复到了上一次的 commit 状态。

git pull 放弃本地修改, 全部使用远端代码

git fetch --all && git reset --hard origin/master && git pull 第一个是:拉取所有更新,不同步:第二个是:本地代码同步线上最新版本(会覆盖本地所有与远程仓库上同名的文件):git reset 指令把HEAD指向master最新

git clean -df  //删除当前目录下没有被track过的文件和文件夹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luopandeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值