git日常开发/多人开发常用命令

1.本地回滚到某一版本

  1. 前提是git此时是等待状态
    在这里插入图片描述
  2. 查看提交日志
    在项目中右键选择查看日志
    在这里插入图片描述
    点击需要回复的版本,查看sha-1值,复制

在这里插入图片描述

  1. 使用,进行回滚,完成
    git reset --hard 930439e81091e5423afab6c859aa3e849006e5e1
    
  2. 提交到远程仓库

2.查看提交分支信息

  1. 在项目中打开git,使用如下命令后
    git fetch //这个命令将某个远程主机的更新全部取回本地
    
  2. 打开TortoiseGit -> Browse References

在这里插入图片描述
3. 找到自己的分支

在这里插入图片描述
4. 说找到分支后,右键点击show log,可以查看到自己的提交信息。

3. 拉取远程分支到本地分支

  1. 本例子是拉取远程分支BBB到本地新分支AAA,并切换到本地分支AAA。

    git checkout -b AAA origin/BBB
    

    这时候就会切换到本地分支AAA,这时拉取的代码并不是远程分支BBB的最新代码,还需要pull一下。
    前提:在本地AAA分支

    git pull --rebase
    

    如果希望在本地创建BBB分支并联系到远程BBB分支。
    前提:本地没有BBB分支

    git checkout --track BBB
    

    从远程分支 checkout 出来的本地分支,称为_跟踪分支(tracking branch)_。跟踪分支是一种和远程分支有直接联系的本地分支。在跟踪分支里输入git push,Git 会自行推断应该向哪个服务器的哪个分支推送数据。反过来,在这些分支里运行git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来。

    $ git pull --rebase
    git pull的默认行为是git fetch + git merge
    git pull --rebase则是git fetch + git rebase.
    $ git fetch
    从远程获取最新版本到本地,不会自动合并分支
    $ git rebase
    git rebase,顾名思义,就是重新定义(re)起点(base)的作用,即重新定义分支的版本库状态。
    $ git pull --rebase
    git pull --rebase执行过程中会将本地当前分支里的每个提交(commit)取消掉,然后把将本地当前分支更新为最新的"origin"分支
    来源:https://www.cnblogs.com/chenjunjie12321/p/6876220.html

  2. 在本地已有的分支中拉取远程分支BBB的代码
    前提:已进入到本地需要拉取的分支中

    git pull origin BBB --rebase
    

4. 切换和查看分支

  1. 查看本地分支,其中带有“*”的是当前分支

    git branch 
    
  2. 查看本地和远程所有分支

    git branch  -a
    
  3. 切换本地分支
    切换到本地分支BBB

    git checkout BBB
    
  4. 查看远程分支

     git branch -r
    

5. 提交本地分支代码到远程分支

分支过多时,并不会全部显示,使用回车是查看下一个分支,使用q表示退出。

  1. 查看本地需要提交的代码

    git status
    

    红色的文件,就是要提交的代码
    在这里插入图片描述

  2. 将文件提交暂存区
    可以将.替换为具体的文件(路径和名称)

    git add .
    
  3. 将文件提交到本地库

    git commit -m '需要填写的信息'
    
  4. 如果是多人开发,需要进行

    git pull --rebase
    
  5. 查看是否有冲突

    git status
    
  6. 提交本地分支代码到远程分支
    AAA是本地分支,BBB是远程分支

    git push origin AAA:BBB
    

6. 放弃本地修改的代码

分为三种情况:

  1. 未使用 git add 缓存代码时
    放弃本地某个文件的代码时:

     git checkout -- filepathname 
    

    放弃本地所有代码,注意下边的"."

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

    放弃某一个文件

    git reset HEAD filename
    

    放弃所有文件,注意下边的"."

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

    回退到上一次commit的状态

    git reset --hard HEAD^
    

    回退到某一次commit:先使用git log查看,找到某一个commit生成的SHA-1,然后使用命令

    git reset --hard SHA-1的值
    

7. 忽略某些文件,不提交

https://blog.csdn.net/vichie2008/article/details/45577971
https://jingyan.baidu.com/article/29697b9106e552ab21de3c78.html

  1. 解决.gitignore无法忽略的文件以及自身被忽略的方法

    git update-index --assume-unchanged PATH/FILE 
    
  2. 恢复被忽略的文件

    git update-index --no-assume-unchanged PATH/FILE 
    

8.查看本地分支跟踪的远程分支

git branch -vv

9.解决git pull --rebase时文件冲突

[1]. 可能使用到的命令

  • git rebase --abort 会放弃合并,回到rebase操作之前的状态,之前的提交的不会丢弃;

  • git rebase --skip 则会将引起冲突的commits丢弃掉(慎用!!);

  • git rebase --continue 合并冲突,结合"git add 文件"命令一起用与修复冲突,提示开发者,一步一步地有没有解决冲突。

[2]. 少量冲突的解决步骤

  1. 使用git pull --rebase后,会拉取远程代码,如果远程文件与本地文件有冲突,分支名会出现REBASE 1/1

    (feature/teaching-referm) =》(feature/teaching-referm|REBASE 1/1)
    
  2. 使用git status 查看文件状态,可以看到“未合并的文件”
    在这里插入图片描述

  3. 找到使用编辑器打开冲突文件,根据需要进行删除代码,其中的<<<HEAD和======和>>>>>也要删除

    <<<<<<< HEAD
    这里的代码是本地修改的代码
    ============
    这里的代码是远程和本地不一样的代码
    >>>>>>>> 39645e0443a07957dae
    
  4. 修改完冲突文件使用如下命令,分支名从(feature/teaching-referm|REBASE 1/1)变为(feature/teaching-referm)

    注意:使用git add . 有时候并不能将修改后的文件进行添加,需要 git add 具体文件路径和名称。

    git add .
    
  5. 解决完冲突并合并到分支上

    git rebase --continue
    
  6. 冲突解决完成,可以进行将代码提交到远程等操作

10.拉取代码前将修改的代码暂时隐藏

  1. 隐藏已修改的代码

    git stash
    
  2. 拉取远程代码

    git pull --rebase
    
  3. 回复原来修改的代码

    git stash pop
    

11. 基于某个分支新建一个分支

  1. 获取远程库中最新的数据

    git fetch
    
  2. 基于远程分支BBB创建自己的分支AAA

    git checkout -b AAA origin/BBB
    
  3. 推送自己的分支AAA到远程库

    git push origin AAA:AAA
    

12.删除远程分支

git push origin --delete [branch_name]

13. 更安全的强推代码到远程仓库

将本地分支AAA的代码强制推送到远程分支AAA上

git push --force-with-lease origin AAA:AAA

猜你喜欢

转载自blog.csdn.net/kouzuhuai2956/article/details/108995377