1、Git了解:git
1. 分布式版本控制系统,每个人的本地电脑上的都是一个完整的版本库,即相对本身来讲是本地版本库,相对别人来讲是一个远程版本库。github
2. 在本地版本库中基本操做流程为:app
建立本地版本库—》在本地版本库中新增、修改、删除文件及内容—》将操做后的文件有工做去暂存(add)到暂存区—》将暂存区中的文件一并提交(commit)到本地版本库中eclipse
3. 与远程库相关联的操做:ssh
克隆远程库版本到本地库中—》在本地库中进行本地库中的各类操做—》将本地库中的版本推送到远程库中的对应的版本上(推送失败及有冲突需解决,解决步骤:pull拉去最近的版本库,并进行合并,合并冲突则解决冲突,最近将解决后的文件再次推送到远程库中)分布式
4. Git相关:工具
Git只是一个版本管理工具,而相应的gitbut和bitbucket是一个版本管理的平台,通常全部正式的各个版本都在gitbut/bitbucket上进行管理。学习
经过git将须要的版本分支从该平台上下载下来。前提是须要有一个gitbut/bitbucket帐号(里面应该须要一个邮箱地址),经过git从gitbut/bitbucket上克隆代码,因为二者之间的数据传输是经过ssh加密的,因此须要配置进行秘钥和公钥的配置:ui
(1)、公钥秘钥生成(首次使用须要本身生成):加密
命令中输入命令:ssh-keygen -t rsa -C “本身Git上设置的邮箱”
在当前目录下生成目录.ssh,该目录下有id_rsa(私钥)和id_rsa.pub(公钥)文件
在gitbut/bitbucket上对应的位置添加公钥
(秘钥须要在可视化工具sourcetree或者安装了Git插件的eclipse中添加)
2、Git安装及准备工做:
1. 选择32/64位对应版本安装,基本上傻瓜式安装,安装完后在。。。
2. 设置我的用户和邮箱,命令为:
git config --global user.name “填写我的用户名”
git congit --global user.email “填写我的邮箱”
3、Git具体命令操做:
1. 建立版本号......算了,考拉上身了不写了......就以操做流程顺序排列到四中的经常使用命令中,以这些命令为主线贯穿一下Git的学习及基本操做
4、经常使用命令总结:
一、本地仓库操做命令:
mkdir :mkdir test (在当前目录下建立一个test文件夹)
pwd :pwd (显示当前目录的路径)
git :git init (把当前的目录变成能够管理的Git仓库,生成隐形.git文件)
git add xx :git add test.txt(把text.txt文件添加到暂存区去)
git commit -m “提交文件的描述”:将暂存区中的文件提交到本地仓库
git status :查看本仓库的状态(未暂存的文件,暂存未提交的文件等)
git diff test.txt:查看test.txt文件修改了那些内容(只针对修改后还没添加到暂存区的文件)
git log :查看当前用户的提交的历史记录
git reset --hard HEAD^ 或者 git reset --hard HEAD~:回退到上一个版本
git reset --hard HEAD^^:回退到上上一个版本
git reset --hard HEAD~100:回退到第100个前的版本
cat text.txt:查看test.txt文件的内容
git reflog:查看全部的历史记录的版本号id(包括之前已经回退的)
git checkout -- test.txt :还原(或叫作丢弃)工做区(即修改后的文件尚未添加到暂存区中的状态)中的修改
rm test.txt :删除test文件,可是没有添加到暂存区中(须要经过命令git add test.txt添加到暂存区中)
git checkout test.txt:恢复删除的test.txt文件(只针对删除后没有添加到暂存区中的文件)
git rm test.txt :删除test文件,而且添加到暂存区
2. 与远程仓库操做的命令:
(1).添加远程库:
git remote add origin http://github.com/www_test_git/testgit01.git(将本地库添加到空的远程库上)
git push -u origin master (因为远程库是空的,咱们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在之后的推送或者拉取时就能够简化命令,即:git push origin master)
(2).克隆远程库及与远程库的一些
git clone http://github.com/www_test_git/testgit01.git (将testgit01仓库克隆到本地)
git branch(查看分支状态,即该仓库都有哪些分支,当前是在哪一个分支上)
git branch dev(建立dev分支,注:其中新建立的dev分支内容继承于当前所在分支,若在文件夹里新增一个文件,则不管切到哪一个分支上都能看到,只有将新建的文件添加提交到当前的分支上时,在切换到另外一个分支时,该新增的文件将消失,只存在于提交的那个分支上。)
git checkout dev(从当前分支切换到dev分支)
git checkout -b dev(建立并切换到dev分支上)
git merge dev (在master分支下进行该操做即将dev分支合并到master分支上,即将dev分支合并到当前分支)
git branch -d dev(在其余分支下删除dev分支)
git stash(隐藏当前分支的修改,不管当前分支是没添加到暂存区仍是未提交,都先隐藏掉,不显示,去进行其余的任何操做)
git stash apply(切换到须要显示隐藏内容的分支上,用该命令显示出隐藏内容,可是该内容还在隐藏的空间中存在,可经过git stash drop 命令删除,可经过git stash list查看隐藏的内容还有多少)
git stash drop (删除隐藏的内容)
git stash list(查看隐藏的内容还有哪些)
===========远程库信息=============:
git remote (查看远程库的信息)
git remote -v(查看远程库的详细信息)
git push origin master(将本地的master分支推送到远程库中的origin分支上,其中,该操做须要在当前是master分支上进行,对于本地库中的主分支叫master,对于远程库中的主分支叫origin。 若将本地库中的dev分支推送到远程库中的origin分支上则:git push origin dev)
git checkout -b dev origin/dev(远程库origin主分支对应有一份分支dev,可在origin对应本地的master主分支下克隆出dev分支)
git pull(拉去最新分支内容,若推送有冲突,是由于本身和其余人改了同一个文件,别人已经更新推送到远程库中,需咱们先拉取最新的而后解决冲突,在推送上去)
(3).多人协做完成文件提交到同一个远程库中时,通常步骤:
A、 首先,能够试图用git push origin branch-name推送本身的修改.
B、 若是推送失败,则由于远程分支比你的本地更新早,须要先用git pull试图合并。
C、若是合并有冲突,则须要解决冲突,并在本地提交。再用git push origin branch-name推送。
三、git远程仓库迁移
(1)、只迁移一个分支状况:即将该库clone下来,而后将某个分支直接推送到新库便可
(2)、迁移该库的全部分支状况:
第一步:将库克隆到本地(其中--mirror 或者--base的方式不包含工做区,只有.git文件,镜像文件,
ssh://git@rdgit.travelsky.com:7999/fgui/afdc.git为原git库地址)
git clone --mirror ssh://git@rdgit.travelsky.com:7999/fgui/afdc.git
第二步:进入到本地库中
cd afdc.git
第三步:为本地库项目从新设置远程git库地址(其中,ssh://git@rdgit.travelsky.com:7999/catl/testall.git为新库地址)
git remote set-url origin ssh://git@rdgit.travelsky.com:7999/catl/testall.git
第四步:推送到远程仓库上(其中,-f为强推操做,通常不推荐使用)
git push -f origin