CSDN仅用于增加百度收录权重,排版未优化,日常不维护。请访问:www.hceng.cn 查看、评论。
本博文对应地址: https://hceng.cn/2017/03/02/Git日常使用小结/#more
本文主要是记录一些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 %}
{% codeblock lang:shell%}
$ touch readme.txt #创建一个测试文件;
$ git add readme.txt #将当前更改或者新增的文件加入到临时空间中;
{% endcodeblock %}
注:
- add 命令只是把文件添加到一个临时空间里,需要执行第3 步的commit 命令才会正式提交到仓库中;
- 如果文件太多,可以使用以下命令一次性提交所有文件(.gitignore 文件指定的除外);
{% codeblock lang:shell%}
$ git add -A
{% endcodeblock %}- 可以在当前目录下新建一个名为“.gitignore”的文件,它里面的内容用来表示某类/某个文件将不会被提交到仓库。
执行以下命令,这会把临时空间的内容存入本地仓库,并添加注释:
{% 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 %}
第一次提交前,需要将本机密钥上传到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 %}
{% 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 %}
{% codeblock lang:shell%}
$ git branch --all # 本地主分支:master;远程主分支:origin/master;
{% endcodeblock %}
{% codeblock lang:shell%}
$ git branch bak # 创建本地分支;
$ git branch # 查看本分支;"*"号表示当前所在分支;
{% endcodeblock %}
即:将本地新建的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 %}
{% codeblock lang:shell%}
$ git push origin :bak
$ git checkout master # 切换到master分支
$ git branch -d bak # 删除本地dev分支
{% endcodeblock %}
参考:
A successful Git branching model
{% 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