Git--上手Github

1.创建远程仓库

无论在之后的第二步你是想从本地到远程还是远程到本地,创建远程仓库是第一步肯定的。(推荐克隆本地,然后把本地的代码拷入,然后add push

因为clone ,github会帮忙创建一个banrch 

.gitignore 设置项目类型

像我是在github上面建仓库,所以在GitHub网站操作新建自己的一个仓库,.gitignore 设置项目类型,.gitignore 是 Git 仓库中的一个特殊的文本文件,它里面记录了你不希望提交到仓库的目录和文件的名称或类型,例如你的 /build 目录;

如果是文件夹,直接在后面写上文件夹的名称就可以过滤掉,还可以过滤具有某些特殊后缀的文件,以及文件名指定文件

仓库的名称,可以是任意的:

如果第二步你是从远程clone到本地那么你需要注意,你的仓库名称就是你的项目名称。

如果第二步你是从本地push到远程那么你需要注意,你的项目名和你的仓库名可以是不一样的。

ssh和https的区别:推荐ssh

在管理Git项目上,很多时候都是直接使用https url克隆到本地,当然也有有些人使用SSH url克隆到本地。这两种方式的主要区别在于:使用https url克隆对初学者来说会比较方便,复制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch和push代码都需要输入账号和密码,这也是https方式的麻烦之处。而使用SSH url克隆却需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的话,你必须是这个项目的拥有者。否则你是无法添加SSH key的,另外ssh默认是每次fetch和push代码都不需要输入账号和密码,如果你想要每次都输入账号密码才能进行fetch和push也可以另外进行设置。

.git

LICENSE 和 .gitignore 文件外,还有一个叫做 .git 的隐藏目录。 这个 .git 目录,就是你的本地仓库(Local Repository),你的所有版本信息都会存在这里。而 .git 所在的这个根目录,称为 Git 的工作目录(Working Directory),它保存了你当前从仓库中签出(checkout)的内容。

checkout切换分支,clone获取远程仓库代码

 

git工具 

下载git.exe,Windows在使用git工具时,可以看到有两个命令输入窗:

1. Git CMD

2. Git Bash

两者的区别:Bash是基于CMD的,Bash在CMD的基础上新增了一些命令和功能,故建议使用Bash更方便。

Git GUI 是一个图形操作页面。

在项目工程上打开"Git Bash Here"这个命令行窗口上操作的,另外不建议cmd,建议git bash,可以补全

所有的命令都有快捷提示补充功能tab键,比如输入"git status"这个命令时,只需要输入"git stat"再按tab键就补充剩下的了,其他也是

2.初次把远程仓库取到本地

git clone 你刚复制的地址

 

这里需要注意的是:

1.你当前所在的目录是你项目的父目录。

2.你需要配置ssh。https://blog.csdn.net/qq_34291777/article/details/55052201?locationNum=1&fps=1

 

Please make sure you have the correct access rightsand the repository exists 或Permission denied (publickey).

想从Git库中克隆项目。没想到原来要进行密钥生成。就是和你https://github.com上的账号进行验证。在本机生成密钥与自己账号绑定。这样就可以从git上下项目了。(这也是为什么我们要fork别人的项目,fork了才方便自己clone和提交)

git config –global user.name “yourname”回车 

git config –global user.email“your@email.com”回车 

这两个命令相当于配置了密码,任何更改,在家目录下.gitconfig文件中更改

[user]
email = g1695698547@163.com
name = Gaoyongxian666

ssh-keygen -t rsa -C “your@email.com”(请填你设置的邮箱地址)回车(命令中的引号可以不加)最后在家目录  下找  .ssh  文件夹中的 id_rsa.pub 用记事本打开(不是那个文件)

 

 

3.初次把本地仓库推到远程

在你的项目目录下:

git init 初始化

git add . 提交全部

git status 查看状态

git remote add origin [写下你的仓库地址]   让本地仓库连接远程仓库

git commit -m "Initial commit" 提交信息(可以不加引号,加引号可以写多行注释

git push origin master 提交到主分支

注意:

1.origin和master中不能有/

2.fatal: remote origin already exists. 或者用3

  git remote rm origin
  git remote add origin [url]

3.如何更改远程仓库 git remote set-url origin [url]

4.免密

1)新建文件并保存密码
$ touch ~/.git-credentials
$ vim ~/.git-credentials
2)添加内容
https://{username}:{passwd}@github.com
3)添加git配置
$ git config --global credential.helper store

另外还有一个更简单但安全性低一些的方案:执行这行代码:git config credential.helper store

在这之后你只需要再输入一次密码, Git 就会把你的密码保存下来,这之后就再也不用输入了。说它「安全性低」,是因为这条指令会让 Git 把你的密码以明文形式保存在你的电脑上。具体这两种保存密码的方案选择哪个,看你自己了

 

5.命令:

上面提到的都是一个文件一个文件的添加到staged,所以用"git add 文件名",添加所有文件到暂存区可以直接用“git add .”

提交直接用"git commit -m '你提交的信息'",推到中央仓库也可以直接用 "git push origin master"就好了

上面提到输入用户名和密码这个,我只知道把项目clone下来时不用"https 的那个url",而是用“ssh 的那个url”这样就不需要每次操作输入用户名和密吗

5.1   log查看提交记录

在这里你只能看到一个提交,这个提交是 GitHub 帮你做的,它的内容是创建你的初始 .gitignore 和 LICENSE 这两个文件。图中第一行中的 commit 右边的那一大串字符(09773235…21411),是这个 commit 的 SHA-1 校验和(如果不知道什么是 SHA-1,你可以暂时把它简单理解为这个 commit 的 ID);后面括号里的内容(HEAD -> master ...)稍后再讲;第一行的下面,依次是这个 commit 的作者、提交日期和提交信息,其中提交信息记录了这个提交做了什么,是提交者填写的(当然,这条提交信息是 GitHub 帮你写的)。

简单看一下这些信息,然后按 q 键退出吧,往下继续。

 

5.2   commit提交

现在你在项目的目录下输入:

git log, Show commit logs

可以在 git commit 后面接 -m ‘<变更日志>’ ,就不需要使用 vi 输入

 

注意:提交之前无论是commit还是push都要进行status 。

 

5.3   status 状态 与 add 追踪

git status  Show the working tree status,用来查看工作目录当前状态的指令,只要不是暂存成功的,都需要add

git add  Add file contents to the index

 "untracked" 状态,它的意思是 Git 仓库对它没有进行任何记录,你在提交的时候不会把它提交上去,查看提交历史也不会看到它。总之,对于 Git 仓库来说,它是不存在的。

 "staged"(已暂存)状态,意思是这个文件中被改动的部分(也就是这整个文件啦)被记录进了 staging area(暂存区)。

 

暂存区: staging area,是 .git 目录下一个叫做 index 的文件(嗯,它的文件名并不叫 stage )。

每个文件有 "changed / unstaged"(已修改), "staged"(已修改并暂存), "commited"(已提交) 三种状态,以及一种特殊状态。"untracked"(未跟踪)。

5.4 push到中央仓库

git commit 提交指令,提交到本地仓库

git push 提交一次或多次到本地后,把本地提交 push 到中央仓库

先pull 再push,防止冲突

5.5 pull更新本地仓库

git pull 是更新

5.6  一般的工作流程

git clone--写代码--git add--中间可以随时git status(总共四种工作状态)--git commit--git push---git pull---写代码

 5.7  管理级别

Git 的管理是目录级别,而不是设备级别的。也就是说,/git-practice 目录内的 .git 只管理 /git-practice 里的内容,/git-practice-another 目录内的 .git 也只管理 /git-practice-another 里的内容,它们之间互不知晓,也互不影响。

5.8  完成提交

push/或者 commit 之后,i 输入提交信息, 然后esc 连续两个大写的Z 就保存且退出了.如果是commit -m 就不用这么麻烦。

fatal 致命的

原文地址:https://www.cnblogs.com/BlueFire-py/p/8580794.html