Git常用操作

基本概念

  • 工作区:新文件没被 add到暂存区,显示红色

  • 暂存区:进仓库前暂时存放区域,未对本地仓库生效。对暂存区文件修改,显蓝色。第一次创建并 add 到暂存区的文件,由于远程仓库没同步,显绿色(注:存放在".git/index 目录"

  • 本地仓库:暂存区 commit代码放入本地仓库,通过 push 推送到远程仓库。(注:存在".git"目录)

  • 远程仓库:在前面的话,仓库里都有些什么东西只有你自己知道,但是一旦把本地仓库推到远程仓库后,仓库里有什么东西大家都知道了

初始化仓库

# 1、本地初始化
git init

# 2、从远程拉取
git clone https://github.com/xxxx/xxx.git

查看仓库状态

#查看当前分支状态
git status

查看历史版本

# 查看版本信息
git reflog

# 查看版本详细信息
git log 

版本回退

reset : 强行移除已提交的 commit 并且不留痕迹

git reset --hard commit_id

revert: 根据 commit 的变更作回退变更(这种方式更适合企业管理,留痕迹)--再重新提交
pycharm 本地比对差异: 右键目标文件-->Git -->show diff
pycharm 跨commit差异比对: 右键目标文件-->Git-->compare with revision

代码提交流程

# 1、添加文件,可以是工程名的下一级开始写路径直到文件名,也可以是* 全部
git add *

# 2、代码提交到缓存区
git commit -m "更新说明"

# 3、以下方案一方案二选其一  
# 合并远程分支代码方案一(场一:在此之前有别人提交了代码,需要先合并才能够 push)
git fetch origin     #或 git remote update 有的时候需要同步一下远程和本地
git merge origin/远程分支名
   
   #合并远程分支代码方案二
 git pull origin  远程分支名
 
 # 4、推送代码
 git push origin 本地分支名:远程分支名
 
 
  • rebase :将本地的多次提交合并为一个
git rebase -i 

分支管理

  • 查看分支
 git branch  #查看本地分支
 git branch -v  #查看当前分支
 git branch -r  #查看远程分支
 git branch -a  #查看所有分支
  • 新增分支
 git branch    #查看分支
 git branch branch_name   #创建名称为 branch_name 的分支
 git chectout branch_name   #切换分支到名称为 branch_name 的分支
 git chectout -b branch_name  #创建分支 branch_name,并切换到该分支中
 git puch origin  #本地分支名称:远程分支名称
  • 删除分支
# 1、先切换到其它分支
git checkout branch_name
# 2、删除本地分支
git branch -d branch_name
# 3、如果删除不了可强制删除
git branch -D branch_name
# 4、有必要的情况下,删除远程分支(慎 用)
git push origin --delete branch_name
# 5、再从公用的仓库提取更新的数据
git fetch origin 本地分支名称:远程分支名称
# 6、然后切换到该分支
 git checkout branch_name
  • 合并分支
# 1、切换到想要合并的分支a
git checkout branch_a
# 2、合并本地分支 b 到到分支 a 上
git merge branch_b
  • 合并冲突: Automatic merge failed; fix conflicts and then commit the result.
    HEAD所指示的版本(也就是你 master 分支所在的位置,即=所指的上半部分,iss53修改的内容为下半部分)
#冲突后显示 
<<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
 please contact us at support@github.com
</div>
>>>>>>> iss53:index.html

解决方案一:
手动解决,删除<<<<<<<,=======,>>>>>>>这些标志,可以仅保留一个分支的修改,git add 命令将其标记为冲突已解决

<div id="footer">
please contact us at email.support@github.com
</div>

远程通道

git remote -v   #查看无程通道

# 添加远程通道并命名为 upstream
git remote add upstream http://github.com/xxx/xx.git

# 拉取 upstream 通道的 main 分支代码,然后-r合并到本地代码
git pull -r upstream main

修改作者信息

git commit --amend --author='张三 <xxx@163.com>'
git push --force   #强行推送
posted @ 2022-03-03 14:46  美女爱找茬  阅读(40)  评论(0编辑  收藏  举报