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"

### Git 常用指令汇总 以下是基于提供的参考资料以及专业知识整理的 Git 常用命令列表: #### 初始化与配置 - **初始化仓库**: 使用 `git init` 可以在一个工作目录中初始化一个新的 Git 仓库[^1]。 - **全局用户名和邮箱设置**: ```bash git config --global user.name "Your Name" git config --global user.email "your_email@example.com" ``` #### 添加文件到暂存区 - 将单个文件添加到暂存区: ```bash git add filename ``` - 将多个文件添加到暂存区: ```bash git add *.extension ``` - 将所有更改的文件一次性添加到暂存区: ```bash git add . ``` #### 提交更改 - 提交暂存区中的更改并附带提交信息: ```bash git commit -m "commit message" ``` - 如果有已跟踪文件被修改过,则可以跳过暂存直接提交: ```bash git commit -am "commit message" ``` #### 查看状态与日志 - 查看当前工作树的状态,包括哪些文件已被修改但尚未提交: ```bash git status ``` - 显示所有的提交记录及其元数据: ```bash git log ``` - 更简洁的日志显示方式: ```bash git log --oneline ``` #### 分支管理 - 列出所有分支: ```bash git branch ``` - 创建新分支: ```bash git branch new_branch_name ``` - 切换至另一个分支: ```bash git checkout existing_branch_name ``` - 合并某个分支到当前分支: ```bash git merge source_branch_name ``` #### 远程操作 - 查看远程仓库的信息: ```bash git remote -v ``` - 添加一个新的远程仓库: ```bash git remote add shortname url ``` - 获取最新的远程分支更新: ```bash git fetch origin ``` - 将本地提交推送到远程仓库: ```bash git push origin master ``` #### 标签管理 - 查看已有标签: ```bash git tag ``` - 创建轻量级标签: ```bash git tag v1.0 ``` - 创建带有注解的标签: ```bash git tag -a v1.0 -m "Version 1 release" commit_hash ``` - 推送标签到远程仓库: ```bash git push origin v1.0 ``` - 删除本地标签: ```bash git tag -d v1.0 ``` - 删除远程标签: ```bash git push origin :refs/tags/v1.0 ``` #### 撤销操作 - 撤销最后一次提交但仍保留代码改动: ```bash git reset HEAD~1 ``` - 撤销某一次特定提交的历史记录而不影响后续提交: ```bash git revert commit_id ``` - 若想重置整个项目回到某一历史节点(危险操作),可使用硬重置: ```bash git reset --hard commit_id ``` #### 其他实用技巧 - 当前未保存的工作进度可以通过 stash 功能临时存储起来以便切换上下文环境: ```bash git stash save "message" git stash pop # 应用最新stash并移除它 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值