目录
- 一、安装与配置Git
- 1.1 Git安装
- 1.2 配置用户
- 二、在github上创建一个自己的仓库
- 三、建立本地与远程仓库的连接(SSH keys配置)
- 2.1 检查你电脑上是否有SSH Key
- 2.2 创建SSH Key
- 2.3 添加SSH Key到GitHub
- 2.4 测试一下该SSH key
- 四、把本地项目push到远程仓库(push)
- 五、克隆项目到本地(clone)
- 六、修改本地文件并bush到远程仓库(push)
- 七、更新远程仓库文件到本地(pull)
- 八、删除远程分支文件并保留本地文件(rm)
- 九、撤销add或commit(reset)
一、安装与配置Git
1.1 Git安装
Git的下载地址:Git官网下载地址
1.2 配置用户
下载完Git后,右键会有一个Git Bash here的选项,点击后会弹出一个类似于命令行的窗口。
在此输入此命令配置用户名和邮箱:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
二、在github上创建一个自己的仓库
1、点击右上角头像的下拉菜单,点击“Your repositories”,进去之后点击“New”按钮新建仓库。
Repository name是仓库的名字,
Description是该仓库的描述(可以不填),
Public表示所有人都能看到该仓库,Private表示只有自己可以看到,
Add a README file:如果勾选了这个选项,那么它就代表着GitHub会自动初始化仓库并且设置README文件,可以让你立刻clone这个仓库。clone意思就是本地没有repository(仓库)时,将远程repository(仓库)整个下载过来。如果不勾选它,那么,你可以手动push。将你已经有的Git仓库添加到GitHub。
Add .gitignore:在使用git作版本控制时,git会默认把git控制的文件夹里面的所有文件都加入到版本控制。但是在实践中,我们经常会遇到不想某些文件或文件夹被git追踪的情况。比如logs文件、代码构建过程中产生的一些列文件,要解决这种问题,通常情况下我们需要创建一个文件格式后缀名为.gitignore的文件,来控制那些文件不被git追踪。
Add a license:这个下拉菜单意思是给你的代码仓库添加一个许可证,你可以根据需求进行选择。比如我添加一个开源许可证,当别人浏览我的代码仓库时,别人也可以进行修改我仓库中的项目。随后会生成包含许可协议内容的LICENSE文件,表明你的仓库内容的许可协议。
2、完成如上操作,点击Create repository按钮,即可完成仓库的创建
回到仓库列表就会发现仓库已经创建完成:
三、建立本地与远程仓库的连接(SSH keys配置)
2.1 检查你电脑上是否有SSH Key
~/.ssh
或者用~/.ssh ls
上边这行命令的作用是检查你的电脑上有没有.ssh文件夹。
如果电脑上有,就会显示bash: /c/Users/…/.ssh: Is a directory
如果电脑上没有,那就显示bash: /c/Users/…/.ssh: No such file or directory
2.2 创建SSH Key
如果你电脑上有了,你就可以直接跳过这一步
在Git Bash中输入
$ ssh-keygen -t rsa -C "你的邮箱"
然后就会显示这两行:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/16627/.ssh/id_rsa):
这是让你输入一个文件名,用于保存刚才生成的 SSH key 代码。为了避免麻烦,不用输入,直接回车,那么就会默认生成id_rsa和id_rsa.pub两个秘钥文件。
这时候已经创建好.ssh这个文件夹了,会提示:
Created directory ‘/c/Users/16627/.ssh’.
紧接着又会问你:
Enter passphrase (empty for no passphrase):
就是让你输入密码,如果你设置了密码,那在你使用ssh传输文件的时候,你就要输入这个密码。为了避免麻烦,建议不用设置,直接回车。
Enter same passphrase again:
这就是让你再输入一次密码,就跟我们注册账号时候设置密码需要设置两次一样。上一步没设置密码,这里直接回车就可以了。到这里你的秘钥就设置好了,你会收到这段代码提示:
Your identification has been saved in /c/Users/…/.ssh/id_rsa
Your public key has been saved in /c/Users/…/.ssh/id_rsa.pub
最后可以再使用~/.ssh
看一下,显示“Is a directory”表示顺利完成。
2.3 添加SSH Key到GitHub
1、回到github,点击右上角下拉菜单中的“Setting”
2、点击设置中的“SSH and GPG keys”,然后点击“New SSH key”按钮
3、记事本打开文件id_rsa.pub(路径为刚刚~/.ssh
后显示的路径)
4、打开后,将里面的密钥全部复制到下图的Key中即可,Title随意起就行。最后点击Add SSH key即可完成创建。
5、至此你的邮箱就会收到github发来的建立成功的邮件了。
2.4 测试一下该SSH key
在git Bash 中输入以下代码
$ ssh -T git@github.com
注意是git@github.com,不是你的邮箱。
然后会提示你:
The authenticity of host ‘github.com (13.229.188.59)’ can’t be established.
RSA key fingerprint is SHA256:nThbg6kXUp…
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入yes,回车
接下来就会提示你输入密码,如果上边设置ssh的时候,你没设置密码会提示你:
Warning: Permanently added ‘github.com,192.30.255.112’ (RSA) to the list of known hosts.
警告完了,如果你能看到如下提示,那你已经成功设置SSH密钥。
Hi “用户名”! You’ve successfully authenticated, but GitHub does not provide shell access.
四、把本地项目push到远程仓库(push)
1、进入想要存放项目的文件夹,右键“Git Bash Here”,即可进入如下界面。
2、生成本地的git管理(会发现在当前目录下多了一个.git文件夹)
输入:git init
3、将项目上所有的文件添加到仓库中的意思,如果想添加某个特定的文件,只需把.换成这个特定的文件名即可。
输入:git add .
4、提交备注
输入:git commit -m "first commit"
表示你对这次提交的注释,双引号里面的内容可以根据个人的需要改。
5、把代码上传到github仓库
输入:git push -u origin master
(master是分支名字,根据具体情况修改)执行完后,如果没有异常,会等待几秒,可能跳出一个让你输入Username和Password 的窗口,你只要输人 github的登录账号和密码就行了。
注意一个坑:
Username for 'https://github.com':
输入的是github上的邮箱账号, 而不是github中设置的username,这是一个坑!!!
Password for 'https://你的github邮箱@github.com':
输入github的登录密码,然后回车即可。
6、最后你就可以看到你的github仓库添加了新的文件。
五、克隆项目到本地(clone)
1、复制想要拉取的项目链接。
2、打开想要存放项目的文件夹,右键打开Git Bash Here
输入:git clone 刚才复制的连接
pul完成!
六、修改本地文件并bush到远程仓库(push)
1、首先,将我们的readme.txt文件的第一行修改一下,修改后如下:
We don't talk anymore. Yes.
Like we used to do.
可以看见,添加了一个yes。
2、使用git status
查看当前仓库的修改状态:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
其中,modified: readme.txt告诉我们,readme.txt被修改了。
如果我们要看具体修改的是什么内容,使用git diff
命令来查看:
$ git diff
diff --git a/readme.txt b/readme.txt
index d27965f..cd08cf5 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-We don't talk anymore.
+We don't talk anymore. Yes.
Like we used to do.
\ No newline at end of file
其中,可以看出readme.txt被修改了,修改内容是We don’t talk anymore.这一句被改成了+We don’t talk anymore. Yes.。
3、最后push即可
七、更新远程仓库文件到本地(pull)
我比较喜欢的方法,是用stash,暂存代码再同步。
首先,将所有代码添加至暂存区:
git add .
然后,将代码临时保存:
git stash
此时代码会重置到修改前的状态,可以同步远程仓库区,完事儿。
git pull
同步后,如果还想继续修改原来的代码,可将临时代码恢复至工作区:
git stash pop
八、删除远程分支文件并保留本地文件(rm)
依次输入如下命令:
git rm --cached 要删除文件的全路径
git commit -m "备注"
git push -u origin master(master是分支名字,根据具体情况修改)
九、撤销add或commit(reset)
1、git add 添加错误
git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件
git add 如果添加了错误的文件的话
撤销操作:git status
先看一下add中的文件git reset HEAD
如果后面什么都不跟的话 就是上一次add 里面的全部撤销了git reset HEAD XXX/XXX/XXX.py
就是对某个文件进行撤销了
2、git commit 错误
如果不小心弄错了git add后 ,又git commit了。
先使用git log
查看节点
commit xxxxxxxxxxxxxxxxxxxxxxxxxx
Merge:
Author:
Date:
然后git reset commit_id
即可