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:
- 撤消对文件的修改
git checkout -- <file>
:file可以是.(全部文件),/文件夹/(某个文件下的所有文件)
https://www.jianshu.com/p/285302d1eb73(详解)
这个指令的真正含义:
官方Note:
请务必记得
git checkout -- <file>
是一个危险的命令。 你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。
-
最新创建的但是还没有add的文件如何删除
https://blog.csdn.net/weixin_39607620/article/details/111490527
通过git clean
指令 -
撤销某次commit的文件
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>
重置揭密
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> --raw
或git 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 # 推送新的分支到远程仓库
0 条评论