zoukankan      html  css  js  c++  java
  • Git基本操作

    1-基本操作

    1-创建仓库

    • Git init:在一个文件目录执行该指令,会把该目录快速设置成Git的代码仓库。
    • Git clone:从远程服务器clone工程,也会创建一个代码仓库。

    2-提交修改

    • git status

      查看当前仓库状态。会提示那些文件发生修改,哪些内容需要add&commit。

    • git add 文件名
      添加文件到仓库
    • git commit -m “这里是注释”
      将add的文件添加注释并且提交到代码仓库
    • git log
      能查看到刚才提交的信息
    • git shortlog

      将开发者操作按照姓名分组

    • git commit –amend -m “这里是追加的注释,会覆盖上次的注释”

      如果上一个注释写错,可以这样进行修改和追加。

    3-diff比较不同

    • git diff ReadMe.txt(文件名)

      显示指定内容的前后变化

    • git diff HEAD

      显示出上次提交节点的差别

    git还支持第三方更强大的diff工具:Meld、beyond compare

    • gitk
      图形化的log记录

    4-别名设置,简化log

    `git config –global alias.lg “log –color –graph –pretty=format:’%Cred%h%Creset-%C(yellow)%d%Creset%s%Cgreen(%cr)%C(bold blue)

    2-Git操作区域

    Git三个区域:工作区(开发修改代码区域)、暂存区、历史区(保存各个版本区域)

    • 暂存区:Git根目录下 > .git > index的文件中,保存了所有的代码提交记录。

    • add操作就是将记录保存到暂存区,此时Head依然指向之前的内容,通过commit将暂存区的内容全部提交,之后Head指向最新内容(通过gitk查看)

    • Git管理的是修改内容,而不是文件

    3-Git回退

    • git checkout ReadMe.txt(文件名)

      将未add提交的修改内容全部还原
      如果执行add后修改的内容,执行该指令会修改到执行好add后

    • git checkout – ReadMe.txt(文件名)

      能将add提交的内容都回退掉

    • git reset HEAD ReadMe.txt(文件名)

      文件从暂存区回退到工作区

    1-回退版本

    • git reset –hard HEAD~1

      回退一个版本

    • git reset –hard HEAD~5

      回退5个版本()

    • hard参数:不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本。

    • 也可以通过commit ID回退到对应版本。

    2-操作历史

    • git reflog
      可以查看所有操作的历史!

    4-文件操作

    • git rm ReadMe.txt(文件名)
      删除文件

    5-文件暂存

    在main分支上开发功能的时候,开发到一半,发现了以前的BUG,这时新建一个BUG分支,在上面修复BUG。但是因为main分支开发的功能开发到一半,会导致BUG分支无法编译通过。这时候可以用`git stash`暂存当前的修改。在修改前的分支作为新的BUG分支。等解决BUG后切换回main分支的时候,再把暂存的内容Pop出来。 先checkout一个BUG分支,修改BUG后,用`git merge`合并到master分支,并且删除了BUG分支。这时候回到main分支,通过`git stash`pop出之前暂存的内容。

    • git stash
      暂存
    • git stash list
      查看当前暂存内容
    • git stash apply/pop
      内容恢复,后者会删除记录,前者可以通过git stash drop删除暂存记录。

    6-远程仓库

    Git本地仓库和Git远程仓库通信,需要SSH进行身份认证。

    • ssh-keygen -t rsa -C “yourname@example.com”

      创建SSH私钥和公钥
      id_rsa私钥用于验证自己身份。id_rsa.pub公钥用于向服务器表明自己的身份。

    • git remote add

      将本地代码库提交到远程仓库

    • git push -u origin master

      将本地master分支提交到远程的master分支,并关联起来。

    • git pull –rebase

      如果Apush修改前,B push了修改,A push的时候需要先从远程获取最新修改。这个指令不会产生过多的merge历史。

    • git clone git地址
      就能从远程仓库clone下来,新建一个本地仓库。

    7-分支管理

    • git checkout -b first

      创建新分支,并且切换到该分支,等价于:
      git brach first创建分支
      git checkout first切换分支
      如果此时有未提交的修改,是无法切换分支的,这时候就可以用git stash进行暂存

    • git branch

      查看分支
      -r显示所有远程分支,-a显示所有本地分支和远程分支

    • (master)git merge first

      在first分支进行修改、add、commit后,切换到master分支,合并第一个分支到master分支。

    • merge和rebase,rebase操作后时间线会合并,merge不会。其余都是一样的。

    • git branch -d first

      删除分支first。-d是删除分支,-D是强行删除分支。

    • git remote origin

      查看远程分支

    • git remote -v origin

      查看详细信息

    • git checkout -b dev

    • git push origin dev

      将dev分支推送到远程仓库。


    一般项目有一个中央的分支,用于打tag和发布realse版本。会新建一个develop分支进行开发,每个开发者再从develop分支新建自己的分支,功能完成后会merge到develop分支。 git add/commit 是分别从工作区,到暂存区,再到版本区。 git push用于版本区到远程仓库。 远程仓库获取最新内容是git pull到工作区 版本区到工作区是git checkout HEAD 暂存区到工作区是git checkout

    8-Tag

    Tag用于记录某个commit点或者分支的历史快照。Tag通常打在Master分支上,以保证代码的准确性。

    • git tag version1

      创建Tag,会记录在最后的提交上

    • git tag version2 commitID(commit点的ID)
      在commitID点加上tag
    • git tag

      查看所有Tag

    • git tag -a v1 -m “vesion1” b87123665216321635173

      -a制定tag名字,-m制定注释文字

    • git show tag名字

      显示tag的详细信息

    • git tag -d version0

      删除tag

    • git push origin version0

      推送tag到远程仓库

    • git push origin –tags

      推送所有本地tag到远程仓库

    • 删除远程Tag

      删除本地tag,再重新push到远程代码库。…….

  • 相关阅读:
    C#与C++与互操作
    WPF GridView动态添加项并读取数据
    C#使用消息队列(MSMQ)
    使用代码浏览WPF控件模版
    PowerShell将运行结果保存为文件
    opencv + ffmpeg
    vmware
    HttpComponents Downloads
    pytorch 安装
    opencv 3.4.0 的编译
  • 原文地址:https://www.cnblogs.com/wangjintao-0623/p/9766685.html
Copyright © 2011-2022 走看看