10个git使用技巧

2024-03-07 16:32 秦倩 484

Git是一个开源的分布式版本控制系统,主要用于管理软件代码的版本和变更历史。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

1.在上一修改的基础上增加改动

在不增加新的commit的情况下,将新修改的代码追加到前一次的commit中,以避免无用的提交。

git commit --amend

2.修改提交信息

用于修改最后一次提交,--only用于告诉git仅修改上一次提交,不改变其他任何的更改

git commit --amend --only
git commit --amend --only 'new commit message'

3.撤销某一个文件的修改

git log // 找到修改文件前的一个版本号
// 或者
git reflog // 找到修改文件前的一个版本号
git checkout <版本号> path/to/file

4.撤销所有修改

撤销包括添加、删除、修改等所有操作,撤销本地所有未提交的修改,并覆盖本地文件

git reset --hard <版本号>

5.撤回最后一次提交

如果提交已推送

git reset <版本号> --hard
git push --force-with-lease <remote-branch>

如果提交未推送

// 不改变暂存区和工作区的内容
git reset --soft <版本号> 

6.恢复误删的分支

// 找到被删branch最后一次提交记录的版本号
git reflog

//Gitlab上根据版本号直接新建branch来恢复被删除的分支
git checkout -b <branch-name> <版本号>

7.在错误的分支上修改了但未提交

 git stash
 git checkout <correct-branch-name>
 git stash pop

8.在错误的分支上修改了并已提交

// 撤销上一次提交,但保留更改
git reset <版本号> --soft
git stash
// 切换到正确的分支
git checkout <correct-branch-name>
git stash pop
git add.  or  add <individual-files>
git commit -m 'message'

9.远程仓库设置错误

// 查看本地和远程库的关联信息
git commit -v
// 修改当前git仓库的远程地址为指定的url
git remote set-url origin <url>  

10.回退到目标版本

回退到目标版本有三种命令 reset  revert  checkout

git reset --hard <版本号>
// 三种模式 --soft --mixed  --hard
--mixed:默认模式,将HEAD指针和暂存区都回退到指定提交,但不改变工作区的内容
--soft: 将HEAD指针回退到指定提交,不改变暂存区和工作区的内容
--hard: 将HEAD指针、暂存区和工作区都退回到指定提交。
git revert <版本号>
// 撤销指定提交的修改,不改变提交历史,通过创建新的提交来撤销之前饿的修改,比git reset命令安全
git checkout <版本号>
// 将当前分支的HEAD指针指向指定的提交,并将工作区的内容替换成指定的内容
// 不改变提交历史,但会覆盖工作区的内容