Git & GitHub学习小结

原创 2016年08月28日 16:12:19

  *注:我学习Git的平台为Windows,学习工具为Babun。
  

// 设置用户名和Email地址

git config --global user.name "Your Name"
git config --global user.email "email@example.com"
  当然也可以直接修改用户目录下的 .gitconfig 文件,在文件中添加:

[user]
    name = Your Name
    email = email@example.com

或直接修改git仓库中的 .git 文件夹里的 config 文件,不过前两种是全局的(即所有的仓库都是这个用户名和Email),而后一种在git仓库中修改的方法是局部的(即只有该仓库的用户名和Email是设置的这个,其它的仓库需要重新设置)。

创建仓库:git init
  

// 在版本库中添加文件(分两步)

将文件添加到仓库:git add <file>
将文件提交到仓库:git commit -m "description"

查看仓库状态(是否修改,是否提交):git status
查看修改内容:git diff <file>
查看工作区和版本库里面最新版本的区别:git diff HEAD -- <file>

查看各版本提交内容:git log
查看命令历史:git reflog
回到上一版本(HEAD指最近提交的一个版本):git reset --hard HEAD^git reset --hard HEAD~1
跳转到指定版本(commit_id指版本id):git reset --hard <commit_id>

// git add 将文件修改从工作区添加到暂存区,git commit 将文件修改从暂存区添加到版本库
撤销修改:1. git checkout -- <file> 丢弃工作区的修改;
     2. git reset HEAD <file> 丢弃暂存区的修改信息;

git rm <file> 删除工作区文件并将删除信息添加到暂存区,
这时如果还没有提交(即 git commit),可通过两步撤销删除,
首先撤销暂存区的删除信息:git reset HEAD <file>
再撤销工作区的文件删除:git checkout -- <file>
当然如果已经提交了,就只能回退版本了。

// 使用远程仓库

创建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"
  输入此命令后,在用户目录下.ssh目录中生成 id_rsa 和 id_rsa.pub 两个文件,id_rsa 是私钥,不能泄露,id_rsa.pub 是公钥,需要给别人。点击GitHub的“Settings”中的“SSH and GPG keys”,点击“New SSH key”,在key文本框里粘贴id_rsa.pub文件中的内容即可,Title任意填。

关联远程版本库:git remote add origin git@server-name:path/repo-name.git
  GitHub中远程库地址:点击“Clone or download”可显示 或 直接显示在“HTTPS|SSH”后面的文本框中。

第一次提交远程版本库:git push -u origin master
以后提交远程版本库:git push origin master
我在提交远程库的时候,出现以下问题:

{ Git } master » git push -u origin master
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0670 for ‘/home/user/.ssh/id_rsa’ are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
Load key “/home/user/.ssh/id_rsa”: bad permissions
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解决方法为:更改id_rsa权限:

{ .ssh } » chmod 600 id_rsa

参考资料:解决id_rsa权限不够http://robinwu.iteye.com/blog/1216647

从远程库克隆一个本地库:git clone git@server-name:path/repo-name.git

// 建立分支

查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>不推荐);
删除分支:git branch -d <name>

查看分支合并图:git log --graph

//合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能用git log –graph看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并,这种合并要创建一个新的commit,所以加上-m参数,把commit描述写进去,命令如下:
git merge --no-ff -m "merge with no-ff" <name>推荐使用这一种方式合并分支)。

// 当要去做另一分支上的事,而当前分支又没完成,可先:
保存当前工作:git stash
查看保存的工作:git stash list
// 当另一分支做完并提交后,再回到当前分支,
恢复当前工作并删除保存工作列表:git stash pop

// 多人协作时

查看远程库信息,使用git remote -v
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
再从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
  *注:不推荐直接使用git pull,而应该使用git fetch origin branch-name,git fetch是从远程分支获取最新的版本到本地但不合并,这样就可以方便我们对比查看更新情况,然后再决定是否合并;git pull相当于git fetch 和 git merge,直接抓取并合并。

参考资料:Git fetch和git pull的区别http://blog.csdn.net/hudashi/article/details/7664457

// 管理标签

新建一个标签(默认为HEAD):git tag <name>
也可以指定一个commit id:git tag <name> <commit_id>
指定标签信息:git tag -a <tagname> -m "description"
查看所有标签:git tag
查看标签信息:git show <tagname>

推送一个本地标签到远程:git push origin <tagname>
推送全部未推送过的本地标签:git push origin --tags
// 删除远程标签,要先
删除一个本地标签:git tag -d <tagname>
// 再
删除一个远程标签:git push origin :refs/tags/<tagname>

// 忽略特殊文件

将要忽略的文件名写入.gitignore文件中,然后commit即可(可使用通配符*)。

参考资料

[1] Git教程http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

git使用小结(安装,git添加版本库,git与github链接)

1、写在前面    使用git有一段时间了,用git加速代码的更迭与更好的远程管理代码。涵盖安装git,git添加版本库,新建项目push进github。 2、content 2.1、安装git   ...

git&amp;github;学习笔记

  • 2012-06-18 14:33
  • 40KB
  • 下载

git学习小结(未完待续)

错误一 ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://g...

学习git小结(二)

学习git小结(二) 下面都是我在学习时记的,稍微整理了一下 给大家推荐个网址可以很好的学习git 网址 git基本概念 Git 使用 SHA-1 算法计算数据的校验和,通过对文件的内容...

学习git小结(一)

学习git小结(一)Quickly Start 大家第一次接触git大都是用github,所有我们快速开始也用github来快速入门git 1 在github上创建项目 在github...

从0开始学习 GITHUB 系列之「GIT 进阶」

版权声明:本文为 stormzhang 原创文章,可以随意转载,但必须在明确位置注明出处!!! 关于 Git 相信大家看了之前一系列的文章已经初步会使用了, 但是关于Git还有很多知识与技巧是你...

使用git和github管理自己的项目---基础操作学习

使用git和github管理自己的项目---基础操作学习

分布式版本控制系统Git学习资源收集汇总(附Github个人简历自动生成)

伴随着知乎上一个问题:GitHub 是怎么火起来的?被顶起200+的回答说到:Github不是突然火起来的,在Ruby社区Github其实从一开始就很流行,我们2009年搞Ruby大会就邀请了Gith...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)