git命令

Posted 613

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git命令相关的知识,希望对你有一定的参考价值。

git clone 

git remote -v

git remote add 

git add .

git commmit 

git fetch upstream 

git pull upstream origin 

git push 

git add 撤销  git reset HEAD file

git reset HEAD <file>   # 取消add操作并保留修改
git checkout -- <file> #若继续该命令,则会删除掉刚刚的修改内容

撤销git commit操作

git reset --soft <commit_id>   #可以回退到某个commit并保存之前的修改  <commit_id>从git log中取,取前7位即可
git reset --hard <commit_id>  #回退到某个commit不保留之前的修改
  • git reset --soft <commit_id>   #可以回退到某个commit并保存之前的修改  <commit_id>从git log中取,取前7位即可
    git reset --hard <commit_id>  #回退到某个commit不保留之前的修改

撤销git push操作

push后撤销该次commit

git revert <commit_id>
  • 1

原理: git revert 会产生一个新的 commit,它和指定 SHA 对应的 commit 是相反的(或者说是反转的)。 任何从原先的 commit 里删除的内容会在新的 commit 里被加回去,任何在原先的 commit 里加入的内容会在新的 commit 里被删除。这是 Git 最安全、最基本的撤销场景,因为它并不会改变历史 — 所以你现在可以 git push 新的“反转” commit 来抵消你错误提交的 commit。

push后删除一些不该提交的文件

删除远程分支上的文件,同时也删除了本地仓库的文件:

git rm file 
git commit -m "test delete"   
git push origin branch name
  • git revert <commit_id>

删除远程分支上的文件,但同时保留本地仓库的文件

git rm --cached filename 
git commit -m "delete" 
git push origin branch name
  • 1
  • 2
  • 3

删除远程分支上的文件夹,但同时保留本地仓库的文件夹及文件

git rm -r --cached directory
git commit -m "test"
git push origin branch name

 

 正确的做法应该是:git rm --cached logs/xx.log,然后更新 .gitignore 忽略掉目标文件,最后 git commit -m "We really don‘t want Git to track this anymore!" 删除跟踪状态而不是物理状

//已经维护的文件 的解决方式
已经维护起来的文件,即使加上了gitignore,也无济于事。
用下面这个命令:
git update-index --assume-unchanged logs/*.log
这样每次提交就不会出现logs下面的文件了

 

以上是关于git命令的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

如何管理在每个 git 版本中添加私有代码片段?

使用 Git 来管理 Xcode 中的代码片段

markdown Git代码片段