git 常用指令

git checkout master                                    切换至远程branch 并创建本地git 仓库

git stash                                                                                      暂存工作区文件

git pull -r                                                                                     rebase 远程branch 到本地目录

git stash pop                                                                               释放已存储代码

git commit --amend   -m  "message"                                         修改git 最后一次commit message

git push origin HEAD:refs/for/master        提交代码到远端


git status                查看所有库目录变化

git status .              查看当前库目录变化

git log                            查看所有库目录commit变化

git log .                          查看当前库目录commit变化

git log  <filename>       查看指定文件变化

git log -p  <commit>    查看commit --patch 的修改

git show <commitId>                 查看指定 commit 的变化

git show <commitId> --stat        查看指定 commit 中变化的文件名

git show <commitId> <文件名>   查看指定 commit 中变化的指定文件内容

git branch               列出本地分支 。

git branch –r           列出远程分支。

git branch –a           列出本地及远程分支。

git branch branchname   创建/切换一个本地分支。

git branch -d <branch>    删除分支; -D 强制删除

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


git stash

git stash save <stashname>        保存当前修改到stash list

git stash list                                  列出栈中 stash 的名称及位置

git stash show stash@{0}             列出指定stash 

git stash pop stash@{0}               退出栈中指定 stash

git stash drop stash@{0}              遗弃 stash 保存


恢复使用

在工作区:

git checkout -- filepathname        放弃单个文件的修改/找回删除的文件 - 恢复暂存区到工作区

git checkout -- .                            放弃当前路径所有文件的修改

在缓存区:

git reset HEAD filepathname        取消暂存文件的修改,撤销 git add

在本地仓库:

git reset --hard HEAD^                 撤销 commit 及暂存区和工作区的修改

没被跟踪的文件

git clean -fd                                   目录也一起删掉


patch 的生成和应用 

git diff > a.patch                                     存储差异成为 .patch 文件

git format-patch commit_1 commit_2    将已经提交的代码打成 patch;git diff 和 git format-patch 区别是 format-patch 无需指定文件名,生成的内容,含提交变化的文件并且已经包含 commit message

git format-patch -2                                 -1 最近一次提交,-2 第二次提交,-3 第三次提交

git apply a.patch                                     应用 .patch 文件


git config

git config -l                                       查看本仓中的本地和远端的 git 配置

git config  --local -l;                          查看本地仓配置

git config  --global -l;

git config  --system -l;

git config --local core.filemode false     排除 git 检查本地 file mode  DAC 权限不一样

git config --system core.filemode false

git config --global core.filemode false

git diff                查看修改代码的不同

git push origin HEAD:refs/for/master    push 代码到远端


commit message

[BugID/ReqID/Init/HW-Para/3rd/Release] XRV3-164      BugID, ReqID, Init xxx机型, 硬件参数, 方案商, 应用, 驱动等第三方的版本

[Desc/Impact]                                                                     改动描述或者影响范围的描述

[NLR] Before Quality Control                                             Before Quality Control / No logic change / NLR:3rd / NLR:N

[SC] Y                                                                                (static check) 后填写是否经过本地静态代码检查合格 (可选字段)

[UT] Y                                                                               (Unit Test) 后填写是否经过本地单元测试合格(可选字段)

[FileNum] 1                                                                        (file number) 该项填写修改的文件数量

[Sync] N                                                                           后填 Y或者N,代表是否从别的分支同步过来 (可选字段)

[Market] N                                                                       主要针对海外市场,填写内容为:EM/EU/SA/US/JP/ALL


git clone with hooks

git clone ssh://zhengsiming@192.168.101.80:29418/NewDisplay/XRV3R2651/android/platform/system/core -b <分支名> && scp -p -P 29418 zhengsiming@192.168.101.80:hooks/commit-msg <git库名>/.git/hooks/

用于从远程仓库克隆一个指定分支名的代码库到本地计算机,并且-p`: 这是`scp`命令的选项,表示保留文件的修改时间和访问时间,`-P 29418`: 这是`scp`命令的选项,指定SSH连接的端口号,从远程服务器复制一个名为 "commit-msg" 的钩子脚本文件到本地Git仓库的hooks目录中


git pull 导致的 merge conflict

git fetch --all

git reset --hard origin/master

git checkout . && git clean -df


push后无法再次push:Unpack error

现象:当git commit时格式错误,我们并没有注意到,但是git push后在公司官网会提示格式错误,所以这个时候需要从新对格式进行更改,这个 时候可以使用git commit --amend命令来对commit 的内容进行更改,而更改后再次使用git push时会出现错误。

原因:这是由于在默认的情况下Git push 会向服务器推送时做优化处理,从而来将发送的包降到最低。而这样优化的方式是比较本地仓与远程仓的内容,并将差异的部分上传,这个时候Git push 默认使用--thin选项。而我们上面的更改只是对commit的内容进行了修改,而没有对本地仓中的内容进行修改,所以他们比较会发现这个两个仓中的内容没有差别,所以他认为这次push是没必要的,所有就提示失败了。

解决办法:使用:git push 加 --no-thin参数来push到远程仓。


repo sync 整仓与子仓分支不一致导致分支 detached

在子仓切换至其他分支,并将问题分支删除

使用 git checkout -b <原分支> -t <远端分支(remote后的字段)>


远程仓库更新地址

ssh-keygen -f "/home/zhengsiming/.ssh/known_hosts" -R [192.168.101.80]:29418


Gitee

git config --global user.name 'Siming'

git config --global user.email '12068457+siming1999@user.noreply.gitee.com'

Gitee报错Message: LFS only supported repository in paid enterprise.: exit status 128

$ rm .git/hooks/pre-push

$ git push -u origin "master"

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值