基本操作
先附上
基本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 网址
将远程库的东西拉到本地
正文
这篇笔记,不讲原理,只谈操作.
一. 初始化
- 首先在任意一个位置,比如桌面,鼠标右键,找到Git Bash here
- 然后mkdir 文件名 新建一个文件夹
- 然后git init 对这个文件夹进行git的初始化,然后就会出现一个.git的文件
4.设置本地库签名/全局签名
5.设置完成后可以通过cat .git/config 查看
(这个命令的意思是查看 .git文件夹中的config文件)
6. git status 可以查看当前git的状态
二.添加文件
然后添加一个 vim good.txt
然后再查看一下 git status
有个红色的good.txt表示它现在在工作区,但不在暂存区。
然后 git add good.txt
就表示把good.txt添加到暂存区 然后再查看你 git status
然后git commit good.txt 从暂存区提交到本地库
最后一种提交到本地库也可以这样。
这样之后就添加到本地库啦
要修改good.txt的内容依旧是通过 vim good.txt
修改之后依旧要add 然后commit
三.查看并修改历史版本
重复提交多次之后,就有很多个版本了.
git log 可以查看提交信息(信息比较全的版本)
不过一般用 git reflog 比较简洁地可以看出来
commit后面的是自己每次提交时给地备注.
head指针指向当前位置,也就是最后一次修改的位置.
- git reset --hard 后面加编号 可以返回其它版本
比如原本是这样
现在将指针移动到 9d1dd6a
又比如直接把指针移动到第一次修改的地方
然后查看 good.txt 就可以查看到第一个版本的情况.
当然,你查看git reflog 还是能查看到各个版本
其它修改的方式
git reset --hard HEAD^一个异或符号后退一步
git reset --hard HEAD~n后退n步
四.分支 冲突与解决
版本控制中,使用多条线推进多个任务.
多个任务分支都是从本地分支发展过去的.
为什么需要多个分支?
因为可以多人协同完成不同工作,或者新的功能在新的分支开发,这样无论对错都不会影响到主分支.
或者一些新手开发功能,为了安全期间,开发一条新的分支给他使用,不要对其它分支或者主分支造成影响.
hot-fix 一般作为修复分支
- git branch’分支名‘
- git brach -v 查看分支
- git checkout’分支名‘切换分支
在yyds分支中修改文件
然后转换到master中修改同样的文件
然后你就合并两个分支git merge yyds(在master中合并yyds)
然后它就会告诉你有冲突
这个时候怎么办呢?
- 编辑冲突的文件,在本例中是good.txt
这里的意思是两个版本中,第一行,第二行的内容都是一样的,而这一部分的内容就是 master的部分
而这一部分的内容就是yyds的部分
这些就是冲突的地方,我们就人为修改,然后把那些特殊符号去掉,然后提交就好了…
- add文件
- 这里要注意!!!要用这种方式来提交
git commit -m加备注 不加文件名
注意一点,因为刚分支合并是在master合并,所以文件合并修改也是在那边.
而yyds并没有合并,所以这边的文件依旧还是没合并前的,所以这就是在哪合并的区别.
本地库和远程库操作
岳不群是项目经理,他首先创建一个本地库,然后在github(代托管中心)上创建一个对应远程库,然后在本地所作的修改通过push和pull弄到远程库.
而令狐冲先将远程库的东西clone下来,(无论是不是团队成员,都可以将远程库的文件clone下来), 然后如果要做修改啥的,要push的话,就得加入团队.
- 创建本地库(就是创建一个文件夹啦,假设我们一开始创建的文件夹inss就作为这个本地库啦)
在github上创建远程库
创建完之后,这个github库有个网址,
然后用 git remote add origin(你想给的网址备注的名称)网址
这个命令可以查看备注的网址
将本地库的东西更新到远程库
git push origin(远程库网址)master(当前哪个分支)
这一步操作就是把当前文件夹,也就是你右键git bash的地方整个push到远程库上,与远程库绑定。
然后远程库上如果有新的(直接在远程库修改或者别人修改后提交到远程库上),你就可以把其拉下来。
git pull origin master
git pull = git fetch + git merge
一步是拉取,一步是合并。
比如你在远程库里修改 good.txt
点击右上角笔的符号,然后修改,修改后提交。
然后在本地库的git pull下来。
查看good.txt
已经修改了。
然后在本地库修改后,push上去,github远程库也会相应更新。
上面的push和pull其实都要你登录你的github,但是有一种方式是不用的,就是clone。
clone
clone是很简单的,随便在任何地方新建一个文件夹。
然后直接右键 git bash here
然后git init 初始化一下
然后直接clone
团队内协作
我们知道,在github上可以拉取文件,也可以推送文件上去。但是有没有想过一个问题,如果别人能随随便便对你的文件进行修改,然后将它push到你的远程库上面,那你的代码岂不是很容易就被别人修改。
但是有的时候,我们却真的需要别人帮我们修改代码,那么github是怎么来解决这个问题的咧?就是团队协作。
将你认为可靠的人,(你允许它修改代码的人增加为你的同伴,然后它就可以自由的push和pull了)。
在这里添加你的collaborator。
团队外协作
如果是作为团队外的人,要修改代码的话(也就是不加入团队成员)
那么你就先找到那个远程库的网址,然后点击fork,就fork一份在你的本地库里面了。