Git操作总结

一、Git是什么?
    Git是目前世界上最先进的分布式版本控制系统。


二、SVN与Git的最主要的区别?

    SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
    Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。


三、如何操作?

    1、创建版本库。
        (1). 通过命令 git init 把这个目录变成git可以管理的仓库,这时候你当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的。
        (2). 把文件添加到版本库中。
         所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。
         第一步:使用命令 git add readme.txt添加到暂存区里面去。
         第二步:用命令 git commit告诉Git,把文件提交到仓库。
         已经提交了一个readme.txt文件了,可以通过命令git status来查看是否还有文件未提交
         提交修改和提交文件是一样的2步(第一步是git add  第二步是:git commit)。
    2、理解工作区与暂存区的区别?
        工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。
        版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
        前面说过使用Git提交文件到版本库有两步:
             第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
             第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。


四:Git撤销修改

    命令 git checkout –readme.txt 意思就是,把readme.txt文件在工作区做的修改全部撤销,这里有2种情况,如下:
        1.readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
        2.另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。


五、创建与合并分支

    1、总结创建与合并分支命令如下:
         查看分支:git branch
         创建分支:git branch name
         切换分支:git checkout name
         创建+切换分支:git checkout –b name
         合并某分支到当前分支:git merge name
         删除分支:git branch –d name
    2、假如遇到冲突,现在我们需要在master分支上来合并fenzhi1

        Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<<HEAD是指主分支修改的内容,>>>>>fenzhi1 是指fenzhi1上修改的内容,我们可以修改后保存。


六、多人协作
    当你从远程库克隆时候,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且远程库的默认名称是origin。
        要查看远程库的信息 使用 git remote
        要查看远程库的详细信息 使用 git remote –v
    1、推送分支:
        推送分支就是把该分支上所有本地提交到远程库中,推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:
        使用命令 git push origin master
    2、抓取分支:
        首先,可以试图用git push origin branch-name推送自己的修改.
        如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
        如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。


Git基本常用命令如下:
   git init          把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
   git add XX       把xx文件添加到暂存区去。
   git commit –m “XX”  提交文件 –m 后面的是注释。
   git status        查看仓库状态
   git diff  XX      查看XX文件修改了那些内容
   git log          查看历史记录
   git reset  –hard HEAD^ 或者 git reset  –hard HEAD~ 回退到上一个版本
                        (如果想回退到100个版本,使用git reset –hard HEAD~100 )
   git reflog       查看历史记录的版本号id
   git checkout — XX  把XX文件在工作区的修改全部撤销。
   git rm XX          删除XX文件
   git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
   git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
   git clone https://github.com/tugenhua0707/testgit  从远程库中克隆
   git checkout –b dev  创建dev分支 并切换到dev分支上
   git branch  查看当前所有的分支
   git checkout master 切换回master分支
   git merge dev    在当前的分支上合并dev分支
   git branch –d dev 删除dev分支
   git branch name  创建分支
   git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
   git stash list 查看所有被隐藏的文件列表
   git stash apply 恢复被隐藏的文件,但是内容不删除
   git stash drop 删除文件
   git stash pop 恢复文件的同时 也删除文件
   git remote 查看远程库的信息
   git remote –v 查看远程库的详细信息
   git push origin master  Git会把master分支推送到远程库对应的远程分支上
   git push origin master:master 创建远程分支
   git push origin :master 删除远程分支
   git fetch origin master  查看远程服务器的修改但不合并到本地
   git config --global user.name "Your Name Comes Here"   配置
   git config --global user.email [email protected]



你可能感兴趣的:(SVN,git,push,远程,pull)