Git日常使用小结

CSDN仅用于增加百度收录权重,排版未优化,日常不维护。请访问:www.hceng.cn 查看、评论。
本博文对应地址: https://hceng.cn/2017/03/02/Git日常使用小结/#more

本文主要是记录一些Git的配置和命令。

关于代码托管,我目前主要使用两个:

  • GitHub:主要用于托管公开代码和利用GitHub Pages搭建本博客;
  • Coding:主要用于同步GitHub代码和托管私人代码;
    下面纪录下Git的安装、配置、使用。

1.安装Git

Windows:git-for-windowsysGit
Mac OS:从AppStore安装Xcode,选择菜单“Xcode”->“Preferences”,找到“Downloads”,选择“Command Line Tools”,点“Install”。
Linux:{% codeblock lang:shell%}
$ sudo apt-get install git
{% endcodeblock %}


2.创建本地仓库并上传

2.1在本地创建仓库

  • 第一次打开Git时,首先要在Git上设置username和email;
    {% codeblock lang:shell%}
    $ git config --global user.name “hceng” #与注册的账号邮箱一致;
    $ git config --global user.email "[email protected]"
    {% endcodeblock %}
  • 在命令行里(这里使用Cmder软件)先进入欲作为仓库的文件夹(如:E:/blog文件夹),然后初始化——创建本地仓库:
    {% codeblock lang:shell%}
    $ e: & cd blog #进入E盘的blog文件夹;
    $ git init #初始化当前文件夹作为仓库(生成.git文件夹);
    {% endcodeblock %}
    这时生成一个".git"目录,该目录是Git来跟踪管理版本,一般情况勿动;

2.2添加文件到本地仓库

{% codeblock lang:shell%}
$ touch readme.txt #创建一个测试文件;
$ git add readme.txt #将当前更改或者新增的文件加入到临时空间中;
{% endcodeblock %}

注:

  • add 命令只是把文件添加到一个临时空间里,需要执行第3 步的commit 命令才会正式提交到仓库中;
  • 如果文件太多,可以使用以下命令一次性提交所有文件(.gitignore 文件指定的除外);
    {% codeblock lang:shell%}
    $ git add -A
    {% endcodeblock %}
  • 可以在当前目录下新建一个名为“.gitignore”的文件,它里面的内容用来表示某类/某个文件将不会被提交到仓库。

2.3提交文件到本地仓库

执行以下命令,这会把临时空间的内容存入本地仓库,并添加注释:
{% codeblock lang:shell%}
$ git commit -m “blog, add 1 files”
{% endcodeblock %}

可以使用以下命令查看记录:
{% codeblock lang:shell%}
$ git log --pretty=oneline
{% endcodeblock %}
得到类似信息,前面为版本号,后面为注释:
{% codeblock lang:shell%}
12ewdqe2q… blog, add 1 files
{% endcodeblock %}
可以给某个版本号打上一个标签,命令如下:
{% codeblock lang:shell%}
$ git tag v1 12ew
{% endcodeblock %}
可以使用以下命令查看已有的标签:
{% codeblock lang:shell%}
$ git tag
{% endcodeblock %}

2.4提交文件到GitHub/Coding

第一次提交前,需要将本机密钥上传到GitHub/Coding;
2.4.1.创建SSH Key:
在用户主目录下,看看有没有.ssh 目录,如果有,再看看这个目录下有没有id_rsa 和id_rsa.pub 这两个文件,如果已经有了,可直接跳到下一步。
如果没有,打开Git Bash,创建SSH Key,命令如下:
{% codeblock lang:shell%}
$ ssh-keygen -t rsa -C "[email protected]"
{% endcodeblock %}
然后一路回车,使用默认值即可。这样在用户主目录里就会生成.ssh 目录,里面有id_rsa 和id_rsa.pub 两个文件,它们是SSH Key 的秘钥对。id_rsa 是私钥,不能泄露出去;id_rsa.pub 是公钥,可以放心地告诉任何人。

2.4.2.在GitHub 里添加SSH Key:
电脑登陆GitHub,在自己账户的"Settings"-"SSH Key"中添加id_rsa.pub 文件的内容;
2.4.3.创建一个仓库
如:git_hexo,第一次上传需要指定GitHub/Coding仓库,如Coding的git_hexo:
{% codeblock lang:shell%}
$ git remote add origin https://git.coding.net/hceng/git_hexo.git
{% endcodeblock %}
然后根据提示输入账号、密码,最后执行以下指令提交至GitHub/Coding;
{% codeblock lang:shell%}
$ git push -u origin master
$ git push origin --tags
{% endcodeblock %}

2.5以后如果修改文件后再次提交

{% codeblock lang:shell%}
$ git add –A # 添加修改文件到临时空间;
$ git commit -m “blog, git use” # 添加本地仓库和添加备注;
$ git tag v2 # 打标签;
$ git push origin master # 上传到服务器的master;
$ git push origin --tags # 上传标签到服务器;
{% endcodeblock %}


3.Git 获取GitHub/Coding源码

  • 执行以下命令,可以复制他人public代码,这称为“克隆”:
    {% codeblock lang:shell%}
    $ git clone https://github.com/hceng/hceng.github.io
    {% endcodeblock %}
  • 当源码作者再次修改了源码后,可以进入对应目录,然后使用以下命令再次获得最新的:
    {% codeblock lang:shell%}
    $ git pull origin
    {% endcodeblock %}
  • 查看信息纪录:
    {% codeblock lang:shell%}
    $ git log --pretty=oneline
    {% endcodeblock %}
  • 查看标签:
    {% codeblock lang:shell%}
    $ git tag
    {% endcodeblock %}
  • 获得指定版本的源码:
    {% codeblock lang:shell%}
    $ git checkout

    $ git checkout
    {% endcodeblock %}

4.分支管理

4.1查看所有分支:

{% codeblock lang:shell%}
$ git branch --all # 本地主分支:master;远程主分支:origin/master;
{% endcodeblock %}

4.2创建本地分支:

{% codeblock lang:shell%}
$ git branch bak # 创建本地分支;
$ git branch # 查看本分支;"*"号表示当前所在分支;
{% endcodeblock %}

4.3发布新分支:

即:将本地新建的bak分支同步到远程服务器GitHub/Coding;
{% codeblock lang:shell%}
$ git push origin bak # 这样远程仓库也有一个bak分支了;
$ git checkout bak # 切换到bak分支操作;
{% endcodeblock %}
第一种情况:bak分支开发完成,合并到主分支:
{% codeblock lang:shell%}
$ git checkout master # 切换到主分支;
$ git merge bak # 把bak分支的更改和master合并;
$ git push # 提交主分支代码远程;
$ git checkout bak # 切换到bak远程分支;
$ git push # 提交bak分支到远程;
{% endcodeblock %}

第二种情况:bak分支没开发完,推送保存,下次再开发:
{% codeblock lang:shell%}
$ git add -A # 添加修改文件到临时空间;
$ git commit -m “bak branch” # 提交本地bak分支仓库;
$ git push # 提交bak分支到远程;
{% endcodeblock %}

4.4删除分支:

{% codeblock lang:shell%}

删除远程bak分支,危险命令;

$ git push origin :bak

下面两条是删除本地分支;

$ git checkout master # 切换到master分支
$ git branch -d bak # 删除本地dev分支
{% endcodeblock %}
参考:
Git日常使用小结_第1张图片
A successful Git branching model


5.其它常用指令

{% codeblock lang:shell%}
$ git status #查看仓库状态;
$ git diff XX #查看XX文件修改了那些内容;
$ git log #查看历史记录;
$ git reflog #查看历史记录(含回退纪录);
$ git reset –hard HEAD^ #回退到上一个版本;
$ git reset –hard HEAD~ #回退到上一个版本;
$ git reset –hard HEAD~100 #回退到100个版本;
$ git checkout – XX #把XX文件在工作区的修改全部撤销;
$ git rm XX #删除XX文件;
{% endcodeblock %}
参考资料:韦东山Android系统视频使用手册20160303

你可能感兴趣的:(Git日常使用小结)