git基本命令和创建⽂件
git是⼀款免费/开源的分布式版本控制系统.
github是⼀个⾯向开源及私有软件项⽬的托管平台,因为只⽀持git作为唯⼀的版本库格式进⾏托管.
⼀、git的⼯作原理图:
workspace:⼯作区
index/staged:暂存区
repository:本地仓库
remote:远程仓库
workspace⾸先是add到index上,让后commit到repository,再push到remote.
⼆、基本操作命令:
(1). 返回上⼀级⽬录:cd .. (cd 与 .. 之间有⼀空格)。
(2). 进⼊某⼀⽬录:cd git (进⼊ git ⽬录)。
(3). 显⽰当前路径:pwd。
三、git创建⽂件:
git安装时会⾃带⼀个git bash⼯具,⽤起来感觉⽐cmd⽅便。可今天发现⼀个问题,⽤git bash⽆法创建
⽂件夹和⽂件。在cmd下,只需要 md+⽂件夹名就可以创建⼀个⽂件夹,可md在git bash下是⽆效的命令。
原因是cmd和git bash是两个完全不同的⼯具,cmd⽤的是Windows⾃⼰的命令,⽽git bash⽤的是linux下的命令。
在git bash新建⽂件夹命令是 mkdir+⽂件夹名。
新建⽂件有两种⽅式:
1,touch+⽂件名,直接新建⼀个⽂件
2,vi+⽂件名,新建⼀个⽂件并进⼊编辑状态(如果⽂件已存在,则直接进⼊编辑状态)
vi其实是linux的⼀个⽂本编辑器,所以 vi+⽂件名后,其实是进⼊vi程序了。
四、git的运⾏逻辑:
3步>>>>>>>>>
1.创建git仓库.
创建仓库分为2步:
<1>本地是没有库的,从服务器pull库到本地来.
<2>本地有库,上传库到服务器中.
2.提交本地代码
<1>git add .  是添加所有当前⽬录的所有⽂件
<2>git commit -m “这⾥是添加注释” :和服务器的代码合并
3.拉取远程代码
>>> git pull  合并有冲突的代码
(conflict:merger,修改了服务器原来的代码替换成你的代码,这些代码有冲突,是选择你的还是选择原来的,有冲突的时候,会⾃动修改你写的代码,并保留服务器原来的代码,如果你是要修改服务器的,只要删除⾃动添加的,再进⾏2<2>执⾏下⼀步步骤就⾏)
>>>提交代码 git push
五、两种⽅式clone服务器上的代码库:
1)https⽅式
通过填写账号和密码就可以clone代码库
2)ssh公钥和私钥⽅式
先在本地制作公钥和私钥.
cmd例:ssh-keygen -t rsa或者是ssh-key -t rsa -C “可以填任何东西⽂字⼀般写邮箱,这段⽂字就在公钥私钥中⽂本的最后⾯”
>>>解释:ssh-keygen -t rsa是直接制作公钥和私钥 -t是填写加密的标准rsa 按下三层Enter的键可以看见公钥和私钥放在哪⾥了.(⼀般在C:\Users\Administrator\.ssh的⽂件夹中公钥.pub后缀)
然后在服务器中⽣成公钥,⽣成之后,在本地cmd中:git clone git@gitxx.x⽹址x.git就搞定clone代码库了
分⽀的作⽤:你的项⽬进⾏中遇到了⼀个问题,解决⽅案不确定,但是你不希望因此影响到当前的开发,那么你可以为此创建分⽀,然后在分⽀上测试你的⽅案,如果可⾏那么可以通过合并分⽀功能将你的更新应⽤到主⼲,反之你可以放弃它。
六、git常⽤命令
git status -s:查询repo的状态,-s表⽰short,输出标记有两列,第⼀列是对staging区域,第⼆列是working⽬录
git log :显⽰每条分⽀的合并历史
–oneline –graph:可以图形化表⽰分⽀合并历史
–author=[author name]:指定作者提交历史
git add . :帝国添加当前⼯作⽬录中的所有⽂件
git commit:提交已经被add进来的改动
git的分⽀操作命令:
git branch -b name:创建分⽀
git branch:查看当前⽬录的分⽀
git branch -d name:删除分⽀
git push origin:name :删除远程分⽀
git checkout name:切换分⽀
git checkout –file:撤销修改
git rm file :删除⽂件
git log –graph :分⽀情况图
repository文件夹可以删除吗
七、git新建本地分⽀与远程分⽀关联问题:
1)git在本地新建分⽀,push到远程服务器上之后,再次pull下来的时候,如果不做出来会报提⽰要求要up-to-data 所以,git本地新建⼀个分⽀后,必须要做远程分⽀关联.
例⼦>>
本地新建分⽀:git branch -b new_branch
将本地分⽀和远程服务器关联:git branch –set-upstream-to=origin/master new_branch
            (将本地新建的分⽀new_branch分到服务器的origin/master的分⽀下)
2)跟踪远程的分⽀
git branch –set-upstream-to=origin/分⽀名分⽀名