Git学习总结(一)---命令操做

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

相关文章
相关标签/搜索