Git/Github完整流程(附git linux基本命令)

基本操作

先附上

基本linux命令

ll 展示目录下的文件
ls -lA 把当前目录下隐藏的资源列出来
cd 文件夹名/文件名 进入某个文件夹或文件
cd .. 退出某个文件夹
mkdir name(文件名) 新建文件夹
git init 在目录下 对文件进行git初始化!!!(无论哪一步,一定记得先git init)
git config user.name ***
git   config user.email ***
git config --global user.name ***
git config --global user.email ***
cat 文件名 可以查看当前文件夹下的文件
比如cat good.txt 就表示 查看当前文件夹下的good.txt文件
cat  .git/config 表示的是 查看.git文件夹下的config文件
git status 可以查看当前git的状态

vim good.txt 添加good.txt
add good.txt 添加到缓存区
git commit good.txt 添加到本地库
/git commit -m " 备注" good.txt(文件名) 

git commit -m " 备注" 不加文件名 分支冲突修改合并时 

分支
1. git branch’分支名‘
2. git brach -v 查看分支
3. git checkout’分支名‘切换分支
4.git merge 分支名 在当前分支合并另一分支

vim 操作 输入完成后
esc -> :->wq 退出保存


git push origin(远程库网址名) master(分支)
将本地库文件与远程库绑定
git pull origin(远程库网址名0 master(分支)
将远程库最新文件更新到本地库

git pull = git fetch + git merge
一步是拉取,一步是合并

上面的push和pull其实都要你登录你的github,但是有一种方式是不用的,就是clone。

git clone 网址 
将远程库的东西拉到本地

正文

这篇笔记,不讲原理,只谈操作.

一. 初始化

  1. 首先在任意一个位置,比如桌面,鼠标右键,找到Git Bash here
  2. 然后mkdir 文件名 新建一个文件夹
  3. 然后git init 对这个文件夹进行git的初始化,然后就会出现一个.git的文件
    Git/Github完整流程(附git linux基本命令)_第1张图片
    4.设置本地库签名/全局签名
    Git/Github完整流程(附git linux基本命令)_第2张图片
    Git/Github完整流程(附git linux基本命令)_第3张图片
    5.设置完成后可以通过cat .git/config 查看
    (这个命令的意思是查看 .git文件夹中的config文件)

Git/Github完整流程(附git linux基本命令)_第4张图片
6. git status 可以查看当前git的状态

Git/Github完整流程(附git linux基本命令)_第5张图片

二.添加文件

然后添加一个 vim good.txt

然后再查看一下 git status
Git/Github完整流程(附git linux基本命令)_第6张图片
有个红色的good.txt表示它现在在工作区,但不在暂存区。

然后 git add good.txt
就表示把good.txt添加到暂存区 然后再查看你 git status
Git/Github完整流程(附git linux基本命令)_第7张图片
然后git commit good.txt 从暂存区提交到本地库

Git/Github完整流程(附git linux基本命令)_第8张图片

在这里插入图片描述
最后一种提交到本地库也可以这样。
Git/Github完整流程(附git linux基本命令)_第9张图片

这样之后就添加到本地库啦

Git/Github完整流程(附git linux基本命令)_第10张图片
要修改good.txt的内容依旧是通过 vim good.txt
修改之后依旧要add 然后commit

三.查看并修改历史版本

重复提交多次之后,就有很多个版本了.
git log 可以查看提交信息(信息比较全的版本)
Git/Github完整流程(附git linux基本命令)_第11张图片
不过一般用 git reflog 比较简洁地可以看出来
Git/Github完整流程(附git linux基本命令)_第12张图片
commit后面的是自己每次提交时给地备注.
head指针指向当前位置,也就是最后一次修改的位置.

  • git reset --hard 后面加编号 可以返回其它版本
    比如原本是这样
    Git/Github完整流程(附git linux基本命令)_第13张图片

现在将指针移动到 9d1dd6a

Git/Github完整流程(附git linux基本命令)_第14张图片
又比如直接把指针移动到第一次修改的地方
Git/Github完整流程(附git linux基本命令)_第15张图片
然后查看 good.txt 就可以查看到第一个版本的情况.

当然,你查看git reflog 还是能查看到各个版本
Git/Github完整流程(附git linux基本命令)_第16张图片
其它修改的方式

git reset --hard HEAD^一个异或符号后退一步
git reset --hard HEAD~n后退n步

四.分支 冲突与解决

版本控制中,使用多条线推进多个任务.

Git/Github完整流程(附git linux基本命令)_第17张图片
多个任务分支都是从本地分支发展过去的.

为什么需要多个分支?
因为可以多人协同完成不同工作,或者新的功能在新的分支开发,这样无论对错都不会影响到主分支.
或者一些新手开发功能,为了安全期间,开发一条新的分支给他使用,不要对其它分支或者主分支造成影响.

hot-fix 一般作为修复分支

  1. git branch’分支名‘
  2. git brach -v 查看分支
  3. git checkout’分支名‘切换分支

Git/Github完整流程(附git linux基本命令)_第18张图片
在yyds分支中修改文件

Git/Github完整流程(附git linux基本命令)_第19张图片
然后转换到master中修改同样的文件

Git/Github完整流程(附git linux基本命令)_第20张图片
然后你就合并两个分支git merge yyds(在master中合并yyds)

然后它就会告诉你有冲突

这个时候怎么办呢?

  1. 编辑冲突的文件,在本例中是good.txt
  2. Git/Github完整流程(附git linux基本命令)_第21张图片
    这里的意思是两个版本中,第一行,第二行的内容都是一样的,而这一部分的内容就是 master的部分
    Git/Github完整流程(附git linux基本命令)_第22张图片
    而这一部分的内容就是yyds的部分

Git/Github完整流程(附git linux基本命令)_第23张图片
这些就是冲突的地方,我们就人为修改,然后把那些特殊符号去掉,然后提交就好了…

  1. add文件
  2. 这里要注意!!!要用这种方式来提交

    git commit -m加备注 不加文件名

注意一点,因为刚分支合并是在master合并,所以文件合并修改也是在那边.

而yyds并没有合并,所以这边的文件依旧还是没合并前的,所以这就是在哪合并的区别.

Git/Github完整流程(附git linux基本命令)_第24张图片

本地库和远程库操作

Git/Github完整流程(附git linux基本命令)_第25张图片

岳不群是项目经理,他首先创建一个本地库,然后在github(代托管中心)上创建一个对应远程库,然后在本地所作的修改通过push和pull弄到远程库.

而令狐冲先将远程库的东西clone下来,(无论是不是团队成员,都可以将远程库的文件clone下来), 然后如果要做修改啥的,要push的话,就得加入团队.

  1. 创建本地库(就是创建一个文件夹啦,假设我们一开始创建的文件夹inss就作为这个本地库啦)
  2. Git/Github完整流程(附git linux基本命令)_第26张图片
    在github上创建远程库
    Git/Github完整流程(附git linux基本命令)_第27张图片
    创建完之后,这个github库有个网址,

Git/Github完整流程(附git linux基本命令)_第28张图片
然后用 git remote add origin(你想给的网址备注的名称)网址
Git/Github完整流程(附git linux基本命令)_第29张图片
在这里插入图片描述
这个命令可以查看备注的网址

Git/Github完整流程(附git linux基本命令)_第30张图片

将本地库的东西更新到远程库

Git/Github完整流程(附git linux基本命令)_第31张图片
git push origin(远程库网址)master(当前哪个分支)

这一步操作就是把当前文件夹,也就是你右键git bash的地方整个push到远程库上,与远程库绑定。

然后远程库上如果有新的(直接在远程库修改或者别人修改后提交到远程库上),你就可以把其拉下来。
git pull origin master
Git/Github完整流程(附git linux基本命令)_第32张图片

git pull = git fetch + git merge
一步是拉取,一步是合并。

比如你在远程库里修改 good.txt
Git/Github完整流程(附git linux基本命令)_第33张图片

点击右上角笔的符号,然后修改,修改后提交。

然后在本地库的git pull下来。

在这里插入图片描述
查看good.txt

Git/Github完整流程(附git linux基本命令)_第34张图片
已经修改了。

然后在本地库修改后,push上去,github远程库也会相应更新。

上面的push和pull其实都要你登录你的github,但是有一种方式是不用的,就是clone。

clone
clone是很简单的,随便在任何地方新建一个文件夹。
然后直接右键 git bash here
然后git init 初始化一下
然后直接clone

在这里插入图片描述

团队内协作

我们知道,在github上可以拉取文件,也可以推送文件上去。但是有没有想过一个问题,如果别人能随随便便对你的文件进行修改,然后将它push到你的远程库上面,那你的代码岂不是很容易就被别人修改。

但是有的时候,我们却真的需要别人帮我们修改代码,那么github是怎么来解决这个问题的咧?就是团队协作

将你认为可靠的人,(你允许它修改代码的人增加为你的同伴,然后它就可以自由的push和pull了)。

在这里添加你的collaborator。

团队外协作

如果是作为团队外的人,要修改代码的话(也就是不加入团队成员)
那么你就先找到那个远程库的网址,然后点击fork,就fork一份在你的本地库里面了。

学习资料来源:https://www.bilibili.com/video/BV1pW411A7a5?from=search&seid=17343109933728067618&spm_id_from=333.337.0.0

你可能感兴趣的:(github,git,linux,github)