zoukankan      html  css  js  c++  java
  • Git(一)【基本使用,集成IDEA,GitHub】

    一.本地库操作

    ①基本操作

    1.初始化本地库
    git init
    
    2.设置用户签名|用户名|邮箱
    git config --global user.name 用户名
    git config --global user.email 邮箱
    
    3.查看本地库状态
    git status
    
    4.添加暂存区
    git add 文件名
    
    5.提交到本地库
    git commit -m "日志信息" 文件名
    
    6.查看文件modify详情
    git diff 文件名
    

    ②历史版本以及回退

    1.查看历史版本
    git reflog #查看历史记录
    git log   #查看历史记录,完整版本号
    git log --pretty=oneline  #显示到一行
    
    2.版本回退
    git reset --hard 版本号    #版本的回退
    

    ③分支操作

    创建分支的本质就是多创建一个指针

    master、hotfix其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的。

    所以创建分支的本质就是多创建一个指针。

    HEAD如果指向master,那么我们现在就在master分支上。

    HEAD如果执行hotfix,那么我们现在就在hotfix分支上。

    所以切换分支的本质就是移动HEAD指针。

    1.创建分支

    ①可以现在远程库手动建一个自己的分支wuhao36

    ②当我们从远程库clone下默认本地只有master分支,

    ③查看所有的本地分支和远程分支 git branch -a, 在本地创建远程分支的git checkout -b wuhao36 remotes/origin/wuhao36

    git branch 分支名
    
    #创建并切换分支
    git checkout -b wuhao36 remotes/origin/wuhao36
    
    
    2.查看分支
    #查看本地分支
    git branch
    #查看本地分支(及最近一次版本信息)
    git branch -v
    #查看本地和远程分支(推荐使用这个)
    git branch -a
    
    3.切换分支
    git checkout 分支名
    
    4.合并分支

    把指定的分支合并到当前分支上

    git merge 分支名
    
    5.推送分支

    推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支

    git push origin 分支名
    
    6.本地分支和远程分支关联
    git branch --set-upstream 分支名 origin/远程分支名
    

    ④合并

    合并分支时一定是涉及到两个分支。这两个分支一个是“当前所在分支”,一个是“目标分支”。

    命令写法:git merge 目标分支

    所以分支合并命令的本质就是把“目标分支”合并到“当前分支”。

    例如:把hotfix合并到master:git merge hotfix,需要确保当前所在的分支是master

    例如:把master合并到hotfix:git merge master,需要确保当前所在的分支是hotfix

    ⑤冲突

    Git使用“<<<<<<<、=========、>>>>>>>>>>”符号帮我们标记出来,现在产生冲突的内容。

    <<<<<<< HEAD
    Hello Git!I am very happy! &&&&&&&&&&&&
    Hello Git!I am very happy!
    =======
    表示HEAD指针指向的位置在冲突中的内容
    
    Hello Git!I am very happy!
    Hello Git!I am very happy! ************
    >>>>>>> hotfix
    表示hotfix指针指向的位置在冲突中的内容
    
    1.冲突原因

    合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。

    2.冲突的解决

    ①编辑有冲突的文件,删除特殊符号,决定要使用的内容

    冲突报错

    处理冲突的部分,查看状态

    ②添加到暂存区,执行提交(注意:使用git commit命令时不能带文件名)

    git add 文件名 、git commit

    二.远程仓库操作(github)

    0.邀请成员加入团队,邀请成员

    个人图像-->setting-->Repositories-->选库-->Setting-->Manage access-->Invite collaborator

    然后等待别人接收邀请就可以加入;如果别人没有收到提醒,点击Manage access-->被邀请人-->Pending Invite 将接收邀请链接发送给别人。

    1.创建远程库 | 别名
    git remote add 别名 远程地址
    
    2.查看、删除远程地址
    git remote -v 查看当前所有远程地址
    git remote remove 远程地址别名  删除远程地址
    
    3.将本地分支推送到远程库
    git push 远程仓库别名 分支名
    例如:git push origin master
    

    第一次push,远程仓库没有该分支相当于新建一个分支

    4.克隆远程库
    git clone 远程地址 分支
    

    三个作用:①初始化本地库 ②远程地址起别名默认origin ③复制master分支中的文件

    5.推送到远程库

    先要加入团队,不然push失败

    git push 远程库别名 远程分支名
    
    6.拉取分支到本地
    git pull 远程库别名 远程分支名
    
    7.跨团队协作

    fork别人的项目到远程个人库 --> clone远程个人库到本地库 --> 本地库修改操作 -->push 到远程个人库 -->远程个人库执行pull request --> 等待别人审核同意然后merge。

    8.ssh登录
    进入当前用户的家目录
    $ cd ~/.ssh
    $ rm -rvf .ssh
    运行命令生成.ssh密钥目录
    $ ssh-keygen -t rsa -C atguigu2018ybuq@aliyun.com
    [注意:这里-C这个参数是大写的C]
    进入.ssh目录查看文件列表
    $ cd .ssh
    $ ls -lF
    查看id_rsa.pub文件内容
    $ cat id_rsa.pub
    复制id_rsa.pub文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG keys
    New SSH Key
    输入复制的密钥信息
    回到Git bash创建远程地址别名
    git remote add origin_ssh git@github.com:haowu2018ybuq/huashan.git
    推送文件进行测试
    

    三.IDEA中使用Git

    ①配置Git忽略文件

    1.哪些文件需要忽略?

    Eclipse特定文件、IDEA特定文件、Maven的target目录

    2.为什么要忽略它们?

    与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之间的差异

    3.如何忽略?

    这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig文件引用,建议也放在用户家目录下

    1)创建idea_project.ignore,名称后缀随便取

    # Compiled class file
    *.class
    
    # Log file
    *.log
    
    # BlueJ files
    *.ctxt
    
    # Mobile Tools for Java (J2ME)
    .mtj.tmp/
    
    # Package Files #
    *.jar
    *.war
    *.nar
    *.ear
    *.zip
    *.tar.gz
    *.rar
    
    # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
    hs_err_pid*
    
    .classpath
    .project
    .settings
    target
    .idea
    *.iml
    

    2) 在.gitconfig文件中引用忽略规则文件

    excludesfile = C:/Users/HaoWu/idea_project.ignore

    [user]
    	naem = Haowu
    	name = Haowu
    	email = 984763176@qq.com
    
    [core]
    	excludesfile = C:/Users/HaoWu/idea_project.ignore
    

    ②在IDEA中使用Git

    1.定位git.exe

    选择本地git的D:SoftWaregitGitingit.exe

    2.初始化本地库

    选择指定项目,创建本地库

    创建本地库后文件名变色

    3.添加暂存区

    选中项目,然后右键,点击add,添加暂存区

    4.提交到本地库

    5.创建分支

    项目名右键,创建分支

    可以看当前所处的分支,也可以在这里创建,创建新的分支后会自己切换到新的分支上

    6.切换分支

    窗口由下角,选择分支,然后checkout

    7.合并分支

    选择一个分支merge到当前分支。

    8.解决冲突

    1)在和远程库交互过程中也有可能发生冲突,因为解决办法一样,所以这里按照分支操作过程中产生的冲突来演示,仍然是同一个文件在同一个位置有不同内容

    master分支

    2)切换到hotfix分支

    3)然后将hotfix 分支合并到master上

    4)冲突的体现

    5)这里可以直接点“Accept Yours”或者“Accept Theirs”来解决冲突。这代表完全使用我们的内容或完全使用他们的内容。如果我们想要详细修改冲突内容则点击Close。此时IDEA会提示Resolve

    6)根据需要调整完成后点击“Save changes and finish merging”,然后提交到本地库就好啦!

    四.IDEA连接GitHub

    1.保存GitHub账号

    Setting的GitHub添加账号,可能网速不好。

    2.分享工程到GitHub

    分享成功

    GitHub上查看

    3.Clone

    填写远程仓库地址,然后点击clone。

    新窗口打开新的项目,重新设置Maven配置。

    4.Push

    在clone下来的工程基础上开发,修改。然后commit到本地库。

    右键项目

    执行push操作

    GitHub远程仓库验证

    5.Pull

    右键项目

  • 相关阅读:
    【C/C++开发】c++ 工具库 (zz)
    【机器学习】半监督学习
    【Python开发】Pycharm下的Anaconda配置
    【C/C++开发】emplace_back() 和 push_back 的区别
    【C/C++开发】容器set和multiset,C++11对vector成员函数的扩展(cbegin()、cend()、crbegin()、crend()、emplace()、data())
    【C/C++开发】C++11 并发指南三(std::mutex 详解)
    【C/C++开发】C++11 并发指南二(std::thread 详解)
    【C/C++开发】C++11 并发指南一(C++11 多线程初探)
    【C/C++开发】STL内嵌数据类型: value_type
    个股实时监控之综述
  • 原文地址:https://www.cnblogs.com/wh984763176/p/13598197.html
Copyright © 2011-2022 走看看