https://github.com/github/gitignore/blob/main/Android.gitignore(gradle的官方忽略文件)
https://www.yiibai.com/git/git_rm.html

忽略

  • git 没有加入到.gitignore的文件提交了,如何忽略
    echo "your_file_name" >> .gitignore  # 将文件名添加到.gitignore中
    git rm --cached your_file_name      # 从Git跟踪中移除文件,但保留在本地
    git commit -m "Remove file from tracking"  # 提交更改

your_file_name一般用通配写法

配置

https://blog.csdn.net/qq_29232943/article/details/103121667

不使用ssh公钥,避免每次push都要输入密码:
git config --global credential.helper store

恢复默认值:
git config [--global] --unset key

记住密码:
git config --global credential.helper store

撤消

https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%92%A4%E6%B6%88%E6%93%8D%E4%BD%9C

https://www.jianshu.com/p/c0f7e4ac14c7

基本指令

  • 修补某次commit
    某次commit的信息想修改,某次commit忘了add某个文件,但是又不想重新生成新的commit,可以执行:
    git commit --amend

通过vim编辑修改commit的信息保存后,通过git log可以进行验证。

如官方文档所言:

当你在修补最后的提交时,与其说是修复旧提交,倒不如说是完全用一个 新的提交 替换旧的提交, 理解这一点非常重要。从效果上来说,就像是旧有的提交从未存在过一样,它并不会出现在仓库的历史中。

修补提交最明显的价值是可以稍微改进你最后的提交,而不会让“啊,忘了添加一个文件”或者 “小修补,修正笔误”这种提交信息弄乱你的仓库历史。

修改commit的author信息:https://www.cnblogs.com/yanglang/p/11794861.html

  • 撤消add
    方法1:

就是将文件从暂存区移除至工作区
git reset HEAD <file> :移除某个文件.

git reset HEAD :移除所有文件

方法2:

这个指令的真正含义:

官方Note:

请务必记得 git checkout -- <file> 是一个危险的命令。 你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。

https://blog.csdn.net/qq_20817327/article/details/124823178
解决过程
首先查询这个文件的log

$ git log <fileName>

其次查找到这个文件的上次commit id xxx(要恢复到的那个正确的commit),注意commit-id要写全,并对其进行reset操作。

$ git reset <commit-id> <fileName>

再撤销对此文件的修改

$ git checkout <fileName>

最后amend一下,再push上去

$ git commit --amend
$ git push origin <remoteBranch>

重置揭密

https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E7%BD%AE%E6%8F%AD%E5%AF%86#_git_reset

git reset --soft/mixed/hard:理解三个参数的区别

--mixed 是默认的选项
Git reset会退回到某个commit 然后文件也untracked了
git reset --soft 退回到某个commit 然后文件已经被add了

检出

git checkout,不光可以切换分支,也可以检出具体的commit-id,tag,但是此时HEAD会处于游离的状态。

https://blog.csdn.net/adojayfan/article/details/88808354

合并

变基(rebase)

rebase -i:的i就是interactive,交互的意思。

将提交到某一分支上的所有修改或者部分修改都移至另一分支上,就好像“重新播放”一样。

https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA

https://zhuanlan.zhihu.com/p/271677627(知乎,讲解得很容易理解)

https://www.jianshu.com/p/4a8f4af4e803

pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)

作用:合并分支,合并提交,删除提交等。

cherry-pick

将指定的提交(commit)应用于其他分支。
http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html

假如:master分支:C1-C2,然后从C2 fork出了dev分支,dev创建了C3-C4-C5-C6提交。现在要把C5-C6应用到master的分支的C2上.那么需要执行的命令是:

#切换到master-C2上
git checkout master
#将C5-C6接入到master-C2上
git cherry-pick dev-C5的提交id   dev-C6的提交id
上面这句命令执行的具体操作是:
将dev-C5与master-C2合并生成新的提交C5',C5'再与dev-C6合并生成新的提交C6'。
如果合并有冲突,需要解决冲突后执行git add和git cherry-pick --continue操作。

merge

查看冲突文件:git diff --name-only --diff-filter=U
查看冲突位置:搜索>>>>>>标记

贮藏与清理

常用于想保存当前的修改,但是又不想commit的场景。

https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E8%B4%AE%E8%97%8F%E4%B8%8E%E6%B8%85%E7%90%86

https://blog.csdn.net/stone_yw/article/details/80795669

查看历史记录

  • git reflog
    显示操作日期:git reflog --date=iso

  • 查看某次提交修改的文件,仅查看文件名,不查看内容
    git show <commit_id> --rawgit show --name-only [commit_id]

git log 查看commit的历史
git show 查看某次commit的修改内容
git log -p 查看某个文件的修改历史
git log -p -2查看最近2次的更新内容
git log –name-status 每次修改的文件列表, 显示状态
git log –name-only 每次修改的文件列表
git log –stat 每次修改的文件列表, 及文件修改的统计
git whatchanged 每次修改的文件列表
git whatchanged –stat 每次修改的文件列表, 及文件修改的统计
git show 显示最后一次的文件改变的具体内容

  • 查看某个文件的修改历史

git log filename 可以看到fileName相关的commit记录
git log -p filename 可以显示filename每次提交的diff

只看某次commit提交中的某个文件变化,可以直接加上fileName: git show commit_id filename

重命名分支

git branch -M 原分支名 新分支名

删除远程分支

git push origin --delete [branch_name]

新建并切换分支

git switch -c feature1

分支对比命令

https://blog.csdn.net/qq_33192454/article/details/132079072

删除所有 Commit 提交记录

1.创建孤立分支,并切换到该分支:
git checkout --orphan latest_branch

2. 暂存所有文件:
git add -A

3. 提交所有更改:
git commit -am "First Commit"

4. 删除主分支 master:
git branch -D master

5. 重命名当前分支为 master:
git branch -m master

6. 强制推送本地分支:
git push -f origin master

标签操作

https://blog.csdn.net/m0_45406092/article/details/128804574
注意标签默认是不会自动提交的

更换远程地址

http://www.taodudu.cc/news/show-112960.html?action=onClick

git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址
git remote rm origin
git remote add origin http://192.168.100.235:9797/john/git_test.git

修改远程分支名称

git branch -m old_branch new_branch  # 重命名本地分支
git push origin :old_branch  # 删除远程旧的分支
git push origin new_branch # 推送新的分支到远程仓库
分类: git

0 条评论

发表回复

您的电子邮箱地址不会被公开。