git常用命令

git常用命令速查表

 

移除本地关联

git remote rm origin // 移除本地关联
git remote add origin git@github.com/example.git // 添加线上仓库
git push -u origin master // 注意:更改后,第一次上传需要指定 origin

关联远程仓库

git remote add origin https://github.com/xienb/NPC.git

创建分支

 git branch test //创建新分支test

git checkout test //切换到test分支

git branch //查看分支

git checkout -b demo //创建新分支demo并切换进去

删除分支

#如果分支包含未合并的更改和未推送的提交,则该-d标志将不允许删除本地分支。
git branch -d  local_branch_name 

#-D带有大写-- delete --force字母D(它是 的别名)的标志会强行删除本地分支,无论其合并状态如何。

git branch -D local_branch_name

# 删除远程分支
git push remote_name -d remote_branch_name

 

合并分支

git merge demo //合并demo分支 前提是你要切出demo分支 并在一个分支上进行合并、

放弃合并分支

git merge --abort

 p.s  rebase 和 merge 的区别?

  • merge

    • 通过merge合并分支会新增一个merge commit,然后将两个分支的历史联系起来
    • 其实是一种非破坏性的操作,对现有分支不会以任何方式被更改,但是会导致历史记录相对复杂
  • rebase

    • rebase会将整个分支移动到另一个分支上,有效地整合了所有分支上的提交
    • 主要的好处是历史记录更加清晰,是在原有提交的基础上将差异内容反映进去,消除了 git merge所需的不必要的合并提交

commit之追加修改

 git commit --amend命令:

  • git commit --amend 作用主要在于:让“本次Amend Commit的提交”覆盖掉最近一次提交的错误信息。并且gitk图形化界面上看不到被覆盖掉的错误信息记录,git log上也看不到被覆盖掉的错误信息记录。
  • 如果想要查看“覆盖掉最近一次提交的错误信息”,可以使用git log加强版命令git reflog。如果想跳回“被覆盖掉的错误提交”,可以使用命令git reset --hard "commit_id"。

eg.

 

本人常用命令流程

1、从已存在的远程分支检出新的分支 并切换到该分支底下

 git checkout -b 本地分支名 origin/远程分支名

 eg. git checkout -b demo origin/demo

2、创建新的远程分支(或删除远程分支)

git push origin 远程分支名:本地分支名
eg. git push origin demo:demo

也可单独创建远程分支
eg.
git push origin 远程分支名


使用git branch -r 查看远程分支 git branch -a 查看所有分支 git branch 查看本地分支

删除远程分支 git push origin :demo (我比较喜欢的简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:)
也可以这样 git push origin --delete demo

 

3、本地分支关联到指定远程分支

git branch --set-upstream-to=<远程主机名>/<远程分支名> <本地分支名>
eg. git branch --set-upstream-to=origin/demo demo
或者
git branch -u origin/demo // 在当前分支输入该命令,就会将当前所在本地分支关联远程demo分支
或者
git branch -u origin/远程分支 本地分支 // 写两个分支名的话远程分支写前面,本地分支写后面

4、git 查看本地当前分支对应的哪个远程分支

git status 

 标明本地分支名是: edoc-thbl 对应的远程分支是: origin/edoc-thbl

 查看本地所有分支对应的远程分支使用命令: git branch -vv

 

或者

使用git branch -vv 查看本地分支与远程分支的映射关系

 

git储藏流程

1.储藏 

有时候我们代码写到一半,需要切换到另外一个分支上去工作。但是我本地这个工作还没做完,如果我现在做一个commit那么会让我的这个开发线多出很多的零散的commit。所以这时候我就可以先把代码进行储藏,然后再切换到其他分支,在其他分支工作完成后再切回现在这个分支。

2.添加储藏

git stash :即可将代码储藏起来。
git stash save "message" :在储藏代码的时候设置一些信息。

3.恢复储藏

储藏完成后我们就可以切换到其他分支了,在其他分支工作完成后,我们再回到之前的分支。然后可以使用以下命令来把之前的储藏的代码进行恢复。

git stash pop :把最新的储藏删掉,并且把储藏的代码恢复出来。
git stash apply :把所有的储藏代码全部恢复出来。

git stash apply stash@{index} :取出指定index的储藏的修改到工作区中

 

4.删除储藏

git stash drop stash@{index} :将指定index的储藏从储藏记录列表中删除
git stash clear :清除所有的储藏。

5.查看所有储藏

git stash list :查看所有的储藏。

6.储藏未跟踪的文件

默认情况下git stash只会储藏那些被跟踪的文件。如果想要储藏那些未被跟踪的文件,那么可以加上--include-untracked参数。命令如下:

git stash --include-untracked

我们还可以使用git stash -a来储藏工作区所有的文件。包括跟踪的文件,没有跟踪的文件,以及在.gitignore中指定了不需要跟踪的文件。

 

放弃本地文件修改流程

1. 未使用git add 缓存代码

  • 使用git checkout -- filename,注意中间有--
git checkout -- filename
  • 放弃所有文件修改 git checkout .
git checkout .
  • 此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除
  • 此命令不会删除新建的文件,因为新建的文件还没加入git管理系统中,所以对git来说是未知,只需手动删除即可

2. 已使用git add 缓存代码,未使用git commit

  • 使用 git reset HEAD filename
git reset HEAD filename
  • 放弃所有文件修改 git reset HEAD
git reset HEAD
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了第一步1. 未使用git add 缓存代码,继续使用用git checkout -- filename,就可以放弃本地修改

3. 已经用 git commit 提交了代码

  • 使用 git reset --hard HEAD^ 来回退到上一次commit的状态
git reset --hard HEAD^
  • 或者回退到任意版本git reset --hard commit id ,使用git log命令查看git提交历史和commit id
git reset --hard commit id

 

posted @ 2021-07-29 20:30  当下是吾  阅读(72)  评论(0编辑  收藏  举报