git工作总结

Git操作指南:版本控制与代码管理

1.还原代码版本

方法:


    git reset --hard <commit_id>

    git push origin HEAD --force

其中:

根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
    git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
    git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
    git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容


    HEAD 最近一个提交
    HEAD^ 上一次
    <commit_id> 每次commit的SHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到.

2.git add后revert

可以用命令git add -i 显示出所有add进index的索引号,在下面也会显示出一些相应的命令,按3就可以进入revert模式,然后按需要revert的编号,最后回车即可移出add。。。

3.git查看版本信息

我们常用 -p 选项 展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新:

$ git log -p -2

此外,还有许多摘要选项可以用,比如 --stat,仅简要的显示 文件 增改行数统计,每个提交都列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计。

$ git log --stat

--author 仅显示指定作者相关的提交。

$ git log  --author=haiwang

  查找 haiwang 提交的 版本;

4.$Git stash 可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug,  先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。
基础命令:
$git stash
$do some work
$git stash pop

5.git 更改 commit log

git 提交后,修改commit log

$git commit --amend 

进入编辑窗口,重新修改刚才提交的日志。

也可以直接编辑日志

$git commit --amend “new message"

 

一次提交后,发现需要再增加一个文件,并让这些文件用同一个SHA1

$git commit -m "feature a"

$git  add new_file.txt

$git  commit --amend 

$git commit -am " message”

这样 feature a 所有代码就有相同的一个SHA1值。

6.git查看某个文件的修改历史

git log --pretty=oneline 文件名

 

7.Git忽略对文件权限的改变





有时候git clone下来后,文件的权限不对,需要chmod -R 777 .

但是这样git会发现很多的改变,事实上是不需要提交的。通过下面的配置可以让git忽略这种情况

git config core.filemode fal

8.git revert和git reset的区别

git revert 是撤销某次操作,此次操作之前的commit都会被保留
git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区
具体一个例子,假设有三个commit, git st:
commit3: add test3.c
commit2: add test2.c
commit1: add test1.c
当执行git revert HEAD~1时, commit2被撤销了
git log可以看到:
commit1:add test1.c
commit3:add test3.c
git status 没有任何变化
如果换做执行git reset --soft(默认) HEAD~1后,运行git log
commit2: add test2.c
commit1: add test1.c
运行git status, 则test3.c处于暂存区,准备提交。
如果换做执行git reset --hard HEAD~1后,
显示:HEAD is now at commit2,运行git log
commit2: add test2.c
commit1: add test1.c
运行git st, 没有任何变化
另外:
git revert <commit log string>是撤消该commit,作为一个新的commit。
9.更改当前分支追踪的远程分支
git branch (--set-upstream-to=<upstream> | -u <upstream>) [< branchname>]
e.g.  git branch -u origin/a_baseline 如果没有指定 本地分支就使用当前的分支。

10.repo upload时发现没有新建branch

git format-patch xxx(修改的上一次commit id)

repo start xxx(branch name)xxx(project)

git am xxx(刚刚生成的patch)

ok了,用repo upload做事吧。

### Git 常用命令总结及使用指南 以下是 Git 的常用命令及其功能说明: #### 配置与初始化 - **配置用户信息** 使用 `git config` 命令来设置用户的名称和电子邮件地址,这些信息会附加到每次提交中。 ```bash git config --global user.name "<用户名>" # 设置全局用户名[^3] git config --global user.email "<邮箱地址>" # 设置全局用户邮箱[^3] ``` - **查看当前配置** 可以通过以下命令列出所有的 Git 配置: ```bash git config --list # 列出所有当前配置 ``` #### 文件操作 - **状态检查** 显示工作目录和暂存区域的状态: ```bash git status # 查看当前仓库状态[^4] ``` - **添加文件到暂存区** 将修改后的文件放入暂存区以便后续提交: ```bash git add <file> # 添加单个文件到暂存区[^4] git add . # 添加所有改动到暂存区[^4] ``` - **提交更改** 提交已暂存的更改至本地仓库: ```bash git commit -m "提交描述" # 提交更改并附带消息 ``` #### 版本控制 - **查看提交历史** 展示项目的提交记录以及分支结构图: ```bash git log --graph --oneline --all # 图形化显示所有分支的历史记录[^1] ``` - **回退版本** 回退至上一版本或其他特定版本: ```bash git reset --hard HEAD^ # 回退到上一个版本[^2] git reset --hard HEAD~<n> # 回退 n 步之前的版本[^2] ``` #### 分支管理 - **创建新分支** 新建一个分支并将当前的工作切换到该分支下: ```bash git checkout -b <branch_name> # 创建并切换到新的分支[^1] ``` - **重命名分支** 修改现有分支的名字: ```bash git branch -m <old_branch_name> <new_branch_name> # 重命名其他分支 ``` - **删除分支** 删除不再需要的分支: ```bash git branch -d <branch_name> # 安全删除分支(仅当分支已被合并时有效) git branch -D <branch_name> # 强制删除分支[^1] ``` #### 差异对比 - **比较差异** 对比工作区、暂存区和最近一次提交的内容变化: ```bash git diff # 比较工作区与暂存区之间的差异 git diff --staged # 比较暂存区与最后一次提交间的差异[^4] ``` #### 远程同步 - **克隆项目** 下载远程仓库到本地环境: ```bash git clone <repository_url> # 克隆远程仓库 ``` - **推送更新** 把本地提交推送到远程服务器上的对应分支: ```bash git push origin <branch_name> # 推送分支到远程仓库[^4] ``` - **拉取更新** 同步远程仓库最新的变更到本地副本: ```bash git pull origin <branch_name> # 更新本地分支内容[^4] ``` #### 存储与恢复 - **保存临时更改** 当前未完成的工作可以通过 stash 功能暂时储存起来: ```bash git stash save "stash message" # 保存当前工作进度[^4] git stash pop # 应用最近的一次 stash 并移除它[^4] ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值