1.下载安装后设置姓名和邮箱地址

$ git config --global user.name "yourGithubName"
$ git config --global user.name "yourEmail@example.com"

2.设置SSH Key

$ ssh-keygen -t rsa -C "yourEmail@example.com"

# 回车 。。 输入密码。。再次输入密码

 然后私钥会生成存放在主目录(一般是C:\user\..\.ssh\)下的id_rsa

 公钥会存放在同一目录下的id_rsa.pub,可以使用记事本打开它,然后复制

 接着在Github上的设置里新建一个SSH Key,命名后把公钥粘贴在指定框里

 添加成功后会,账户邮箱会收到一个邮件,可以不管。

 然后就可以和Github进行认证和通信了。

$ ssh -T git@github.com
#。。yes。。可能要输入密码

 出现 Hi xxx! You've successfully ...字样的就是成功地和Github进行了认证了,以后不用认证了,但可能要输入密码,就是刚刚设置的那个。

3.使用Git进行clone

 首先在Github上新建一个repository,命名例如HelloGit,选择生成README,然后打开Git把它clone到本地:

$ git clone git@github.com:whlook/hellogit.git

  

4.将本地新建的文件上传到GitHub

 在clone后的项目目录下新建一个文件如 test.c

然后打开Git查看本地项目的状态,由于test.c还没有添加到Git仓库,所以显示为Untracked

$ cd hellogit
$ git status

使用add和commit命令来将test.c添加到Git仓库然后推到GitHub上

$ git add test.c   #添加到暂存区
$ git commit -m "add cpp" #添加到本地仓库
$ git push #更新到GitHub上的仓库

查看一下GitHub上是否更新:

5.更改目录

 git工作树根目录默认在c盘,可以手动更改到其他地方。

配置环境变量,添加HOME,值为目标目录

 然后将相关的配置文件如.gitconfig等复制到该目录

 把Git Bash的属性中的起始位置修改到该目录

 6.创建本地仓库并上传到Github

  打开git的bash后,cd到准备创建本地仓库的地方,然后使用mkdir创建:

mkdir remoteTest

  然后cd到 remoteTest目录下,使用 init 命令初始化该文件夹成为git仓库

git init #初始化git仓库

  在remoteTest目录下新建一个readme.md文件,回到bash将它添加到暂存区和仓库:

git add readme.md #添加到暂存区

git commit -m"added readme" #添加到本地分支

  这时候还不能 push,需要打开github新建一个空仓库remoteTest(也不要添加README),然后回到bash进行连接:

git remote add origin git@github.com:whlook/remoteTest.git #添加远程仓库(github)

  然后这时候可以提交,这次提交和普通提交不一样:

git push -u origin master

  现在就完成了本地仓库的上传。

 7.命令整理

git clone git@github.com:xxx/yy.git #clone 项目到本地

git status #查看最新的状态,是否有更改等

git add xx.xx #添加文件xx.xx到本地暂存区

git add -A #增加所有文件到本地暂存区

git diff #查看当前的工作树与本地暂存区的区别(git add)

git diff HEAD #查看与上次提交的区别(git commit)

git commit -m"describe to the update" #提交到本地仓库并添加评论

git push #提交到GitHub

git pull  #将GitHub上的该仓库拉取到本地

git branch #查看当前所有的分支,*号所在的即为当前工作分支

git branch newBranchName #创建名字为newBranchName的新分支,但HEAD仍停留在当前分支

git branch -d newBranchName #删除名字为newBranchName的分支

git checkout -b newBranchName #创建名字为newBranchName的新分支并切换到该分支

git checkout branchName #切换到名为branchName的现有分支  #在commit之前所做更改对其他branch可见

git checkout <file> #撤销该文件的更改(在git add 之前),该命令需谨慎使用

git merge --no-ff branchName #切换到master后使用该命令,会将branchName合并到master # --no-ff 可以保存分支的历史,而直接merge 不行

git log --graph #以图表形式查看分支

touch xx.txt #在目录下生成文件 xx.txt

git tag 'label' #给该次commit打标签

git tag #显示所有标签

git show label #显示标签为label的当次commit信息

 8. 其他

  在目录下创建文件.gitignore,里面加入需要屏蔽的文件格式,使得git不去跟踪这类文件。

最新文章

  1. java多线程--线程池的使用
  2. Elasticsearch 管理文档
  3. Word两端对齐问题
  4. c++中vector等容器的实现机制
  5. pyqt5模块
  6. 步步为营Hibernate全攻略(四)剪不断理还乱之:复合主键 &amp;&amp; 组合映射
  7. 如何给js动态创建的dom添加事件
  8. BZOJ 3403: [Usaco2009 Open]Cow Line 直线上的牛(模拟)
  9. poj2785双向搜索
  10. oracle一直不确定的distinct多字段处理情况整理
  11. 关于富文本在Android中的应用以及遇到的坑
  12. 【子集或者DFS】部分和问题
  13. Python常见面试题
  14. (详细)华为荣耀8X JSN-AL00的usb调试模式在哪里开启的教程
  15. Django-用户模块与权限系统相关
  16. JS 作用域及作用域链
  17. pytest十二:cmd命令行参数
  18. leetcode-algorithms-16 3Sum Closest
  19. latex 公式距离
  20. Vue.js——基于$.ajax实现数据的跨域增删查改

热门文章

  1. HDU 1532 Drainage Ditches(网络流模板题)
  2. 手机端1px细线公共类
  3. MySQL 温故知心(三)
  4. XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem J. Terminal
  5. 资产证券化(ABS)+ 特殊目的信托(SPV)
  6. 微服务—分布式服务追踪sleuth和zipkin
  7. axios配置大全
  8. mfc配置CAN通信
  9. 移植gdb到海思3716板子的方法【转】
  10. mysql数据库无法连接(JDBC)java.net.ConnectException: Connection timed out