Git及Github之入门到进阶

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_38244174/article/details/85019319

       一言以蔽之, 所谓Git,一款免费、开源的分布式版本控制系统;所谓Github,用Git做版本控制的代码托管平台。一张图来说明代码提交者、Git与Github之间的关系:

                                 

           以下主要分以下几个阶段来对Git及Github的使用进行介绍:

(一)Git时间之初识版本控制工具
     是一款分布式版本控制工具。下面来教教大家如何使用Git建立本地仓库并上传代码到GitHub
     1.到本地项目文件夹右键选择git bash here
     2.输入个人信息(代码提交者)

git config --global user.name "xxxx" 
git config --global user.email [email protected] 

     3.在本地项目目录创建本地仓库,输入命令后项目目录会有一个隐藏的.git文件夹

git init  

     4.上传所有代码到本地仓库

git add .
git commit -m "initial commit"

     5.上传代码到github
     新建repository,复制仓库地址

       6.关联本地仓库并上传代码

//关联代码仓库
git remote add origin ***.git(刚才复制的仓库地址)

//如果是第二次修改的话需要git pull一下:git pull <远程主机名> <远程分支名>:<本地分支名>
//比如,要取回origin主机的next分支,与本地的master分支合并,需要写成下面这样:
git pull origin next:master
//如果这块报错,可能是因为冲突太多,无法合并分支,尝试重新git clone以下,在这个基础之上修改所有待修改文件,修改完后再git add .、git commit、git push等。虽然是笨办法,但却能解决问题。

git push origin master

如果在git push origin master报错,说明本地库和远程仓库冲突太多,使用git pull解决冲突:(链接:https://www.cnblogs.com/jun1019/p/6243295.html

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to '**********'

则应该先

git pull

git push origin master

简单总结下

git clone 仓库地址

git add .

git commit -m "kevinhe commit"

git push origin master

//如果rejected报错,则本地仓库同远程仓库更新之后在提交
git pull
最简单的流程:
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/hzka/LeetCode-Tencent.git
git push -u origin master

拉取别人的仓库:
git fetch https://github.com/yychuyu/LeetCode.git master:dev
检查分支
git branch
合并分支
git merge

拉取合并自己的仓库:
git pull

查看增加/删除了哪些文件:
git status

输出commit id:
git log

退出git log
英文状态下的Q

(二)Git时间之版本控制工具进阶篇
      先进入到该项目下创建代码仓库:

git init

(1)忽略文件
       Build目录下的文件都是便以项目时候自动产生的,因此我们不应当将这部分文件添加到版本控制里面去。Git提供了可配性很强的机制允许用户将指定文件夹或目录排除在版本控制之外,它会检查代码仓库的目录下是否有.gitignore文件,会按行读取并忽略文件。AS在创建项目时候已经生成了.gitignore文件,一个在根目录下,一个在app模块下。我们可以对这两个文件进行修改。修改后如第三张图所示。忽略了:/src/test   /src/androidTest
使用:

//添加所有文件
git add .
//执行commit完成提交
git commit -m “Fisrt Commit”

 

(2)查看修改内容:
       如何使用Git查看上次提交之后修改的内容。只需要使用status命令.

       1.可以看到代码的修改

git status

       2.使用下面命令可以看到修改的内容

git diff

       3.若只看MainActivity.java内的文件。可以使用:

git diff app/src/main/java/com/example/hzk/p386/MainActivity.java

         

(3)撤销未提交的修改
       若代码未提交,修改的内容均可以撤销
       1.适用于没有add过的文件。

//撤销修改使用:
git checkout app/src/main/java/com/example/hzk/p386/MainActivity.java
//检查下,之前添加过的已经取消啦:
git status

          2.对于已经add过的。

//添加所有文件
git add .
//git status检查更新状态,发现.java文件有所更新
git status
//使用git reset重置上一次的修改。撤销修改。
git reset HEAD app/src/main/java/com/example/hzk/p386/MainActivity.java
//最后使用git status检查下。
git status

 (4)查看提交记录
       1.使用git log查看历史提交信息

git log

  

        2.因为提交的记录可能比较多,如果我们只看这一行的提交记录,则使用git log 记录id -1

         3.想看该条记录具体修改了什么内容,使用git log 记录id -1 -p,其中减号表示删除部分,加号表示增加部分。

(三)Git时间之版本控制工具的高阶用法
         完成准备工作: 

git init
git add .
git commit -m “First Commit” 

(1)分支的用法
        分支的作用是在现有代码基础之上开辟一条分叉口,使得代码可以在主干线和分支线上同时开发,相互不影响。
应用场景:开发了1.0版本后开始开发1.1版本,这时已上线的1.0出现重大bug严重影响使用。于是去修复1.0的bug。但此时1.1已经开发一半,若在此基础之上修复bug,则更新的1.0会带有一半的1.1版本的功能。解决方法:在1.0版本发布时建立分支,在主干线上继续开发1.1的功能,当1.0发现bug时,则修改分支线,将修改后的代码合并到主干线上。这样解决了bug,主干线的代码也完成了修复,不影响1.1的开发。

1.检查当前版本库中有哪些分支

git branch

2.建立分支,但此时我们的代码仍在master分支

git branch version1.0

3.如何将代码切换至version1.0分支,随后进行检查。

 git checkout version1.0
 git branch

       这时在1.0分支上提交的代码不影响master分支。此时修复1.0上的bug,masteer的bug依然存在,手动复制显然麻烦,最好的办法就是merge命令去做。

若切换报错,看这篇链接:https://blog.csdn.net/qq_21004057/article/details/52928211

4.合并分支,首先切换分支到master,在合并version1.0的分支到master,也有代码冲突情况,需要静下心来去找。

git checkout master
git merge version1.0

5.不需要version1.0分支时,删除它。

git branch -D version1.0

(2)与远程版本库协作。
        版本控制工具最主要特定就是团队合作开发。不是一个人玩。
1.创建git仓库,地址为:https://github.com/hzka/testing.git,将其下载到本地。

git clone https://github.com/hzka/testing.git

2.将本地修改内容同步至远程.origin是远程仓库git地址,master是同步到哪一个分支。这就同步到了master的分支了。

git push origin master

3.将远程修改同步到本地,git提供了fetch和pull。其存放在origin/mater分支下。

git fetch origin master

3.查看远程版本库修改了哪些。和本地不一样的地方。

git diff origin/master

4.调用merge进行将origin/mater分支合并至本地主分支。

git merge origin/master

5.而pull命令是将fetch和merge一起执行了。

git pull origin master

猜你喜欢

转载自blog.csdn.net/weixin_38244174/article/details/85019319