测试3

77 阅读6分钟

Git操作笔记

  1. 创建一个空目录,使用 git init 可以把这个空目录变成 Git 可以管理的仓库。

  2. git add :将工作区(Working Directory)的修改添加至暂存区(Stage/Index),git commit 将暂存区的内容提交到当前分支(本地仓库,master or 其他分支)。

  3. git reset --hard commit_id(or HEAD^, HEAD~num) :用于 commit 后的版本回退。

  4. git reflog:查看命令历史,以便确定要回到未来的哪个版本。

  5. git log:查看提交历史;git log --pretty=oneline 简化显示的信息。

  6. git checkout -- (从工作区还原修改):如果对 file 进行了修改并且还没 git add . ,那么执行此命令可丢弃工作区的修改,回到上一个commit后的样子。ps: 假如只添加了一两行,又想删除,那么直接在文件中操作,不需要用这个命令;如果修改了很多,一下子全部不想要了,想回到修改之前,那么可以用此命令。

  7. git reset HEAD (从暂存区还原修改):如果对 file 进行了修改并且执行了 git add .,那么执行此命令可以把暂存区的修改撤销掉,重新放回工作区;然后你可以手动修改工作区(file)的内容或者执行 git checkout -- 回到上一个commit后的样子。

  8. git reset HEAD^(从本地仓库还原修改):如果对file进行了修改并且执行了git add .、git commit,那么执行此命令可以回退到上一个版本,此时git status 处于修改未add的情况,修改的file文件并没有变化。然后执行git checkout -- ,file文件会回到上一个commit后的样子。

  9. rm :删除工作区的file,现在有两种选择,

    1. 要删除版本库(包含暂存区和本地分支)的file,执行 git rm ,然后 git commit -m "--"。ps:也可以不用 rm 删除工作区的file,直接执行 git rm ,然后 git commit -m "--",版本库和工作区中的 file 就都会被删除。
    2. 删错了,想要恢复工作区的 file,执行 git checkout -- ,就可以恢复工作区误删的 file。ps: git checkout -- 其实就是用版本库里的版本(file)替换工作区的版本(file),无论工作去是修改还是删除,都可以“一键还原”,此处同理第6条。
  10. git remote add origin :将一个已有的本地仓库与远程库关联起来(origin 就是远程库的名字)。

  11. git push -u origin <分支>:把当前分支推送到远程。

  12. git remote -v:查看远程库信息。

  13. git remote rm :解除本地与远程库的绑定关系。

  14. git clone :在没有本地仓库的情况下,将远程仓库克隆下来。

  15. git clone -b <分支> :克隆远程仓库指定分支。

  16. git checkout -b (= git switch -c ):(基于你当前所在的分支创建新分支dev)将远程仓库克隆下来后,执行此命令将创建本地分支dev,并切换到dev分支;此命令相当于 git branch dev; git checkout dev(等同于 git switch )两条命令。在dev分支上的操作不影响你克隆下来的分支(克隆时没有指定分支的话就是master,有指定分支的话就是指定分支)。

  17. git merge dev:首先切换到其他分支,这里我们切换到master,此命令可以用于将dev分支合并到当前分支master。(本地)

  18. git merge --abort:撤销合并(没有开始解冲突)。

  19. git branch -d dev:删除本地分支dev。(只能处于其他分支的时候将dev分支删除,如果dev分支没有合并到a分支,你在a分支上删除dev分支,会收到分支dev没有完全合并的error,但是可以执行 git branch -D dev 强行删除dev分支)

  20. git push origin --delete <远程分支name>:删除远程分支name。

  21. git stash:当前处于dev分支上并且还没有提交,这个时候想创建新的分支issue进行工作,用此命令可以将当前工作现场(dev分支)“储藏”起来,等issue分支工作完成后继续dev分支的工作。操作流程为:

    1. git stash 将当前dev工作现场“储藏”起来。(此时可以有修改了未add的文件、add了但没有commit的文件)

    2. 用 git status 查看工作区是干净的。

    3. 确定从哪个分支创建临时分支,这里假设从master分支创建临时分支issue,执行 git checkout master; git checkout -b issue 两条命令。

    4. 在issue分支上工作完成后,执行 git checkout master; git merge --no-ff -m "merged issue" issue 两条命令合并到master分枝上。

    5. git branch -d issue 删除 issue 分支。ps:也可以不用删除,根据需要保留。

    6. git checkout dev 切换到dev分支上。

    7. 用 git stash list 查看工作现场,此处有两种方法恢复dev分支工作现场:

      1. git stash apply 恢复,但是stash内容并没有删除;然后执行 git stash drop来删除。
      2. git stash pop,恢复的同时把stash内容也删除。
  22. git push origin <本地分支name>:推送本地分支到远程库:

    1. 如果从远程库克隆下来的是name分支,在此分支上工作完后推,在name分支上执行git push origin name,表示将本地仓库name分支推送到远程仓库name分支,远程仓库name分支代码就会更新。
    2. 如果从远程库克隆下来的是name分支,然后又在name分支上新建了新的分支name2,工作完后,执行git push origin name2,表示将本地仓库name2分支推送到远程仓库name2分支上(远程仓库本来没有name2分支,现在会新建一个)。
  23. git checkout -b dev origin/dev:创建远程origin的dev分支到本地。(前一个dev是指的在本地创建的分支dev,后一个dev是指远程仓库的dev)

  24. git pull(= git fetch + git merge):从远程仓库分支拉取最新代码,你在ide上所看到的是最新代码。

  25. git fetch:从远程仓库分支拉取最新代码,但只是拉取到远程仓库副本(本地的远程仓库缓存),你在ide上看不到最新拉取的代码,看到的还是之前的,需要 git merge一下才能看到最新拉取的代码。

  26. 使用git新建分支并上传的过程,如果上传到gitlab已有分支,则省略第5步即可。

    1. git init #生成本地./git 文件
    2. git add . #添加需要上传的文件
    3. git commit -m “**” #双引号内对上传文件描述
    4. git branch -a #查看所有分支
    5. git branch new #创建new分支
    6. git checkout new #切换到new分支
    7. git remote add origin url #(这里的url指的是上面搜索栏的那个地址,并且那个地址要是该项目的根地址,不能是分支的地址,然后在该地址后面加个.git就可以了)

#注意:关联远程仓库,添加后,远程库的名字就是 origin,这是 Git 默认的叫法,也可以改成别的,但是 origin 这个名字一看就知道是远程库。

  1. git push origin new #上传到gitlab的new分支