程序员必备技能-git 不会到还有人不会用吧,不会吧不会吧?
版本控制 :版本控制最重要的作用是记录一个文件的修改 历史 记录,并且根据该记录可以切换到对应的 历史 版本,这个也是由个人开发到团队开发重要的工具。
集中式版本控制系统 :具有一个统一的中央服务器,里面存放着项目的源码。各个客户端都从该服务器中拉取代码和上传自己编写的代码到服务器中。
优点:各个客户端可以查看其他客户端在该项目中做了什么,一定程度上了解项目的进度。同时,管理员可以控制各个程序员的权限。
缺点:无法应对中央服务器的单点故障问题,当中央服务器宕机后,各个客户端都不能提交代码和拉取代码,同时在宕机的期间,做不到版本的 历史 记录。
分布式版本控制系统 :每个客户端都是一个版本库(本地库),各个客户端维护自己的版本 历史 记录。各个客户端的协作是通过使用远程库(GitHub等)进行的,push把代码推送到远程库中,pull把远程库的代码拉取下来。
优点:解决了集中式版本控制的缺点。在远程库宕机的情况下(虽然说这个概率极低),客户端还是能进行开发的,因为版本的控制是在本地进行的。同时,每个客户端保存的是整个项目,包括 历史 记录,使得更加安全。
Git的工作机制
代码托管中心(远程库) :
底层:head指针指向分支,分支指针指向版本号。当版本号发生变化时,分支指针指向对应的版本号
(1)配置git的忽略文件
(2)在idea中配置git
(3)初始化项目
下载项目仓库到本地后,当在本地做了一些代码更新之后,需要提交本地代码到Github服务器
方法/步骤
1、打开Github For Windows,点击项目后面的箭头,或者双击项目
2、进入到项目仓库后,就会在界面右侧看到改动的的代码或者文件,我们在左侧输入此次变动的备注,如下图所示
3、点击的“Commit to master”按钮,就会在左侧显示一个“Unsynced Commits”
4、我们点击右上方的“Sync”按钮,这些软件就会自动上传代码到远程服务器
5、上传完毕之后,就会在左侧的“History”里看到刚才上传的版本
6、为了验证代码是否上传服务器成功,可以进入到Github上的项目主页,验证代码是否变动成功
注意事项
代码上传期间请不要关闭软件或者网络以免造成上传失败
要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个Git的简单教程。步骤如下:
打开https://githubcom 直接在首页上注册
点按钮注册成功之后,在页面上方用户菜单上选择 “+”->New repository 创建一个新的仓库
为仓库取一个名字,点击创建仓库按钮 你将成功创建一个仓库
安装git客户端
github是服务端,要想在自己电脑上使用git我们还需要一个git客户端,
windows用户请下载 mac用户请下载 一路next,安装成功后, 回到C盘,或任何文件夹下,点鼠标右键会多出一些菜单
如 Git Init Hear、Git Bash、Git Gui , 说明安装成功。
配置Git
我们先在电脑硬盘里找一块地方存放本地仓库,比如我们把本地仓库建立在C:\MyRepository\1ke_test文件夹下
进入1ke_test文件夹 鼠标右键操作如下步骤:
1)在本地仓库里右键选择Git Init Here,会多出来一个git文件夹,这就表示本地git创建成功。右键Git Bash进入git命令行,截图效果如下:
为了保险起见,我们先执行git init命令
$ git init
为了把本地的仓库传到github,还需要配置ssh key。
2)在本地创建ssh key
$ ssh-keygen -t rsa -C "your_email@youremailcom"
后面的your_email@youremailcom改为你的邮箱。我的邮箱是lilu@1keco,也是在github上注册的那个邮箱:
直接点回车,说明会在默认文件id_rsa上生成ssh key。
然后系统要求输入密码,直接按回车表示不设密码
重复密码时也是直接回车,之后提示你shh key已经生成成功。
然后我们进入提示的地址下查看ssh key文件。 我的电脑的地址是C:\Users\lilu\ssh ,其中lilu是我的电脑的名称
打开id_rsapub,复制里面的key。里面的key是一对看不懂的字符数字组合,不用管它,直接复制。
回到github网站,进入Account Settings,左边选择SSH Keys,Add SSH Key,
title随便填,粘贴key。
3)验证是否成功,在git bash下输入
$ ssh -T git@githubcom
回车就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
4)接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们
$ git config --global username "your name"
$ git config --global useremail "your_email@youremailcom"
yourName是在github的用户名,下面是邮箱。分别输入上述命令行 回车, 我的界面显示如下:
5)进入要上传的仓库,右键git bash,添加远程地址
$ git remote add origin git@githubcom:yourName/yourRepogit
后面的yourName和yourRepo表示你在github的用户名和刚才新建的仓库,加完之后进入git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
与github上的对应
提交上传
1)接下来在本地仓库里添加一些文件,比如README
在本地新建一个README文件
然后在命令行输入一下命令
$ git add README
$ git commit -m "first commit"
我的执行界面如下
2)上传到github
$ git push origin master
git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。
注:首次提交,先git pull下,修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件。
大功告成,现在你知道如何将本地的项目提交到github上了。
这是我第一次应用git,以下仅供git的初学者参考。
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。这对于一般人来说公共仓库就已经足够了。
1注册账户以及创建仓库
要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。
2安装客户端tortoiseGit
github是服务端,要想在自己电脑上使用git我们还需要一个git客户端,我这里选用TortoiseGit,他给我们提供了图形界面的操作。在安装之前首先需要安装git,下载地址http://msysgitgithubcom/,TortoiseGit下载地址:
http://codegooglecom/p/tortoisegit/
装完后右键鼠标会多出一些选项来,在本地仓库里右键选择Git Init Here,会多出来一个git文件夹,这就表示本地git创建成功。右键Git Bash进入git命令行,为了把本地的仓库传到github,还需要配置ssh key。
3配置Git
(1) 首先在本地创建ssh key;
$ ssh-keygen -t rsa -C "your_email@youremailcom"
后面的your_email@youremailcom改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成ssh文件夹,进去,打开id_rsapub,复制里面的key。回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。
(2)为了验证是否成功,在git bash下输入:
$ ssh -T git@githubcom
如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
(3)接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。
$ git config --global username "your name"
$ git config --global username "your name"$ git config --global useremail "your_email@youremailcom"
(4)进入要上传的仓库,右键git bash,添加远程地址:
$ git remote add origin git@githubcom:yourName/yourRepogit
后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
4提交、上传
(1)接下来在本地仓库里添加一些文件,比如README,
$ git add README
$ git add README$ git commit -m "first commit"
(2)上传到github:
$ git push origin master
git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。
修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到github。
5gitignore文件
gitignore顾名思义就是告诉git需要忽略的文件,这是一个很重要并且很实用的文件。一般我们写完代码后会执行编译、调试等操作,这期间会产生很多中间文件和可执行文件,这些都不是代码文件,是不需要git来管理的。我们在git status的时候会看到很多这样的文件,如果用git add -A来添加的话会把他们都加进去,而手动一个个添加的话也太麻烦了。这时我们就需要gitignore了。比如一般c#的项目我的gitignore是这样写的:
bin
suo
obj
bin和obj是编译目录,里面都不是源代码,忽略;suo文件是vs2010的配置文件,不需要。这样你在git status的时候就只会看到源代码文件了,就可以放心的git add -A了。
1在网上下载一个git软件并安装
2生成ssh
在桌面点击右键,选择Git Bash Here,进入操作界面,输入"ssh-keygen -t rsa -b 4096 -c"@com(在codingnet注册时的邮箱)""命令。
下一步就是新建文本文档命名改成"id_rsa",继续操作设置密码完成后,再输入命令“cat ~/id_rsapub”命令,生成ssh
用文本文档打开ssh获取秘钥,复制里面的内容,然后在codingnet中账户设置里把ssh的内容粘贴就行了,其他自己设置就好。这样就配置完成。
3创建本地仓库
在本地创建一个文件夹,作为你上传代码的本地仓库,接下来就要把这个仓库与coding服务器端进行配置
在这个文件夹内点击右键,选择Git Bash Here,首先要初始化本地仓库,输入"git init"。
然后打开codingnet在里面自己所创建的代码仓库的地址复制,在git中输入命令"git clone +仓库地址(右键鼠标粘贴)",例:http://
这时会把codingnet中的代码仓库里的东西全部克隆在你的电脑中(注:看你是否有用cd进入其他盘,否则默认克隆在桌面)
4代码推送
把需要上传的文件放进上述克隆下来的文件夹中,然后在git用命令进入文件夹,进而再检查仓库状态命令"git status"
如果codingnet上没有该文件则字体会显示红色,用命令"git add "选中全部上传的文件。
完成上述步骤后,输入命令"git commit -m "自己标识文件注释是什么"",
然后输入"git push origin master"命令推送到云端,origin是服务器,master是分枝。
5代码下载
原本你已经有克隆过以前的数据,然后另外有人上传一些新的文件的时候,就可以使用命令"git pull origin master"更新最新的仓库。
1要使用git 先安转git 请到官网下载最新git https://git-scmcom/downloads 安装完成右键查看下是否有
2到码云官网注册你的账号 登陆并创建你的仓库(这里我们就有了远程仓库地址请记住) 如不会请看我下一篇文章
3到你所要上传的文件夹中右键 选择git bash here
4在我们的命令编辑器里初始化项目 git init
5连接远程仓库 刚才我们建立的时候的远程地址就用到了 git remote add origin https://gitoschinanet/neverFail/demo-javagit
6开始上传 输入git push -u origin master 这里可能会报错 所以建议不用这句 直接使用git
push -u origin master -f 强制上传
7刷新码云看是否上传完毕 如没有 就请继续输入一下内容
1
git add
2 git commit -m "注释"(根据你自己意愿填写)
3
git push -u origin master
这个时候文件就上传ok了
以上上传过程中会出现要输入username 用户名 记住这里输入的不是
记住这里常常误导 所以在我的步骤中git基础配置是没写上去的 这里输入的是你的码云账号和密码
代码提交
代码提交一般有五个步骤:
1查看目前代码的修改状态
2查看代码修改内容
3暂存需要提交的文件
4提交已暂存的文件
5同步到服务器
1 查看目前代码的修改状态
提交代码之前,首先应该检查目前所做的修改,运行git status命令
a) 已暂存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示删除文件
b) 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示删除文件
另外,git 给出了可能需要的操作命令,git add/rm, gitcheckout --
c) 未跟踪 (untracked files)
2 查看代码修改的内容
git diff <file>
比较某文件与最近提交节点的差异。
注意:如果该文件已暂存,那么应该使用git diff –cached<file>
git diff <hashcode> <hashcode> <file>
比较某文件在提交节点a,节点b的差异。
技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用^运算符)
3 暂存需要提交的文件
如果是新建的文件
则git add <file>
如果是修改的文件
则git add <file>
如果是删除的文件
则 git rm <file>
4 提交已暂存的文件
git commit
注意注释填写规范。
git commit --amend
修改最近一次提交。有时候如果提交注释书写有误或者漏提文件,可以使用此命令。
5 同步到服务器
同步到服务器前先需要将服务器代码同步到本地
命令: git pull
如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。
命令:git checkout -- <有冲突的文件路径>
同步到服务器
命令: git push origin <本地分支名>
如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。
一、从git仓库打开 git bash 命令输入框。查看本地分支文件信息,确保更新时不产生冲突
二、将当前工作目录中更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步
三、提交当前工作目录的修改内容。
直接调用git commit命令,会提示填写注释。通过如下方式在命令行就填写提交注释:git commit -m "注释内容"
四、上传代码到远程服务器
五、查看服务端代码分支
六、查看修改日志
查看本地与远程服务端的不同:
# 获取远端库最新信息$ git fetch origin$ git diff master origin/master
第一个master是本地分支名称,第二个master是远程服务分支名称
0条评论