git 的基础使用

配置:

       首次安装完git后,需要配置信息

       

 

 检查配置:

       

 

git修改: 

      git config --global user.name "Your_username"    重新设置git 
      git config --global user.email "Your_email"

      生成公钥和私钥 ssh-keygen -t rsa -C “your_email@example.com”

         id_rsa.pub就是公钥文件

  

git区域: 

     工作目录    (git add .)后到    暂存区   (git commit -m '注释')到  git版本库

 

状态:

      使用git status 查看状态

       

       未追踪   (Untracked)

       已修改   (modified)

       已暂存   (staged)

       已提交 (committed)

    

       git status -sb    可以查看冲突的文件,前面有UU标志的就是冲突文件

       

 

操作:

    1.提交:git commit -m '提交'

     git log 查看历史commit的记录

                 查看下一行内容:回车键或方向键下键

                 查看上一行内容:y键或方向键上键

                 查看下一页内容:空格键或PageDown键

                 查看上一页内容:b键或PageUp键

                 退出查看:q键

 

      修复式提交:git commit --amend 后会进入编辑模式  :wq保存并退出

          优点:不增加新的提交版本情况下,追加到前一次的提交中

 

      2.删除 git rm      在git commit -m ''之后,不想push到远程的文件

          git rm 文件     仓库和工作区中删除指定文件(注意:会删除记录和本地文件)

          git rm -r 文件夹      git rm和git rm -r慎用!!!,会删除本地

         

          下面两个会经常用到,不会删除本地!!

          git rm --cached 文件   只删除仓库中的文件(就是会恢复到未被git add 追踪前)

          git rm -r --cached 文件夹  只删除仓库中的文件夹()

          注意:上面所有操作后后一定已在提交一次git commit -m '',记录

      

     3.回退版本 git reset    在git add后,取消追踪

           git reset HEAD 文件名  撤销某一个文件

           git reset HEAD .   从暂存区撤销所有文件

 

           特别提醒及注意!!!下面代码会清除本地修改,并且会删除git log指定版本号后面的的版本记录,慎用!!

                   git reset --hard HEAD^ 最近的一次版本

                   git reset --hard 指定版本号     版本号可通过git log查询

                     不小心用了上面两个,还有解决办法:对于没有commit 就没办法解决

                           1.git reflog 查看所有版本记录

                                

                              2. 使用 git reset HEAD@{x}    x就是你恢复的版本号,但是恢复后是删除的状态,文件还是没有出现在本地

                           3.使用 git checkout .  放弃本地修改,就会取消删除,文件就会恢复到本地

                                      

 

 

工作常用流程:

1.git pull 拉取代码 ---->2.git add . 提交本地 3. git commit -m '' 4 git push

 

git pull 拉取分支:

 

拉取指定分支到当前本地分支:git pull origin 远程分支名

拉取指定分支到指定本地分支:git pull origin 远程分支名:本地分支名

 

拉取时,代码冲突方法

1.git stash 保存本地代码版本
2.git pull 更新代码
3. git stash pop 合并冲突代码
4. 本地修改
5. 然后进行git add . 等等一系列操作

 

查看分支:

        git branch  ;查看本地分支

       git branch -r  ;查看远程分支

       git fetch --all ;  更新本地分支,例如同事B新增一个分支,更新后,本地也能获取

       


新建分支:

1. git checkout -b yxy 建立分支,并切换 相当于执行git branch yxy 和git checkout yxy两个命令
git branch yxy 创建分支
git checkout yxy 切换分支

2. git push origin yxy 创建和切换完成后需要将新的分支发送到仓库保存

3. git branch --set-upstream-to=origin/yxy yxy 远程分支的名字 本地分支的名字 将远程分支和本地分支建立联系,才能Push代码

 

合并分支:

//假设当前是master分支
git merge origin/dev 将dev分支代码合并到master分支
合并分支时出现Please enter a commit message to explain why this merge is necessary(请输入提交消息以解释为什么需要合并)
直接按esc 然后输入:wq

 

删除分支:先要切换至其它分支

       git branch -d 分支名称    如果分支没有合并,则不能删除  

       git branch -D 分支名称   强制删除

       git push origin --delete 分支名称 删除远程仓库分支

       git fetch --all  更新本地分支情况

 

git stash用法:当前开发未完成时,需要切换其它分支

     将git add . 暂存区的代码删除并缓存起来

     git stash 和git stash save 'xxx' 效果一样

     git stash list 获取缓存列表

     拉取指定的git stash pop stash@`{1`}缓存列表项

     也可以使用git stash pop apply stash@`{1`}   

     pop和 apply 区别:pop会删除list里面的记录,而apply不会

 

git合并commit 提交记录

     这篇文章写的很详细 https://blog.csdn.net/qq_39253370/article/details/124277214

      esc   q 退出  i编辑  wq保存 大写ZZ也是保存

      

 

 

 

 git 合并分支的某一个commit代码  git cherry-pick <commit_id>

        将一个分支上某个commit合并到另一个分支

        例:将dev分支的commit_id 未d54sada55qw5dsadqw8ddf5ef5dasd合并到master分支

             1.切换master分支

             2.执行cherry-pick命令

             3.git push

     退回到合并之前 git cherry-pick --abort

 

git本地仓库和远程仓库建立连接

       这篇博客很详细 https://blog.csdn.net/m0_55251293/article/details/127661445

撤回某一次commit

      git revert  <commit id>  撤回,并提交一次commit

 

强制线上版本回退到某个版本:

      git reset --hard cedfbe4d3557181ed9633354a0ddedceXXXXXXX
      git push -f

 

     也可以用git rebase -i    里面的 d 删除

 

posted @ 2021-07-13 21:48  fanbu  阅读(108)  评论(0编辑  收藏  举报