(说明:本文以windows系统为例进行说明,linux系统中使用类似;本文脚本都在本地Git Bash中执行;本文主要讲Git、Github的入门级使用。)
Git是目前世界上最先进的分布式版本控制系统。
重要命令:
git init: 初始化本地仓库
git add: 将本地源文件加入暂存区
git commit: 将暂存区信息加入‘分支’
git push: 将本地仓库push到远程仓库
本文结构:
一、在github上注册账号
二、windows下安装Git
三、本地Git与Github账号绑定
四、本地Git访问远程Github
五、创建本地仓库和使用
六、Github上建立远程仓库
七、“本地仓库”与“远程仓库”联动
八、克隆(clone)一个远程仓库到本地
参考:
一、在github上注册账号
官网:https://github.com/
登录页(官网上):https://github.com/login
我的用户名:chengaoxiang1985
注册邮箱:hncschengaoxiang@163.com
二、windows下安装Git
https://www.jb51.net/article/274413.htm
三、本地Git与Github账号绑定
执行以下两条命令,将在C:\Users\Chengaoxiang目录(不同系统可能不同)下生成.gitconfig文件(切记不能删);
其内容(记事本打开)正是代码中输入的github用户名和注册邮箱。
git config --global user.name "github用户名"
git config --global user.email "github注册邮箱"
1.png
2.png
四、本地Git访问远程Github
有几种方法,一般使用SSH方法。
step1:本地生成SSH秘钥
(如果已经有SSH则可跳过这一步)
执行以下命令(需指定一个任意邮箱),结果在C:\Users\Chengaoxiang目录下(用户可在代码执行过程中指定该目录,见下图)生成了.ssh文件夹(切记不能删),其内部包含了一个公钥id_rsa.pub和一个私钥id_rsa,正是通过他们与远程Github进行通信的。
这两秘钥都可以直接用记事本打开,或者直接在git bash中用cat命令打开。
ssh-keygen -t rsa -C "任意邮箱地址"
3.png
4.png
step2:远程Github配置SSH公钥
登录Github账户→
点击个人头像→
选择“Settings”→
选择“SSH and ”SSH and GPG keys→
点击“New SSh key”→
打开前面生成的公钥文件id_rsa.pub,全选(一定要全选)并复制公钥,黏贴在待新建的SSH key框中,点“Add SSH key”→
自动跳转重新输入github密码(因为增加SSH key,要求重新登录确保安全)
5.png
6.png
7.png
step3:测试SSH是否能连上
git bash输入以下代码:
ssh -T git@github.com
8.png
至此,本地git客户端和远程github建立了联系!
五、创建本地仓库和使用
5.1 创建本地仓库
所谓仓库,本质上就是个文件夹而已!
先新建一个文件夹(已有的也行),我在D盘根目录新建了一个名为Git_cgx的文件夹;
9.png
在git bash中通过cd命令进入到该文件夹内。
并执行下述命令,结果在该文件夹内生成了一个隐藏文件夹.git(该文件夹是git本地仓库的核心,其内部文件是git用来跟踪管理版本的,不可随意乱改,否则会破坏该仓库);同时git bash的提示符最右侧出现了一个:(master)标记,表示当前处于该仓库的master分支(当执行 git init 时,默认情况下Git就会为你创建一个名为master 的分支,“分支”是Git的重要特色)。
此时,Git_cgx已经变成了Git可以管理的仓库了。
# 将当前目录创建成仓库:
git init
# 将指定目录创建成仓库:
git init (目录路径)
10.png
11.png
至此,一个空的本地仓库已经建好了!
5.2 重要概念
- 本地仓库(Repository):也就是通过命令git init后的整个Git_cgx目录。
-
工作区(Workspace): Git_cgx下,除了版本库.git(一个隐藏目录)以外的所有空间,用于存放代码文件、说明文件等源文件。
(特别注意:在工作区中的源文件还不属于真正加入“本地仓库”,需要经过add、commit、push等命令处理(见后面)。) - 版本库:就是这个隐藏目录.git(他虽也在Cit_cgx目录下,但不属于工作区),版本库里存了很多文件,其中最重要的是暂存区,还有Git为我们自动创建的第一个分支master(没见具体文件?????),以及指向master的一个指针文件HEAD。
- 暂存区(Index / Stage): .git下名为Index或Stage的文件,他暂时存储了待上传至某个“分支”的源文件的信息(包括文件名、大小、指向源文件的 id等,但不包括源文件本身),(注意:当第一次执行add命令后才会生成暂存区文件,建立仓库之初没有)。
- 分支:Git的特色,用于管理不同代码版本,在生成本地仓库时,Git会自动为用户生成一个名为“master”的分支。
-
远程仓库(Remote):在Github上的仓库,位于远程服务器上,通过push命令与本地仓库联动,便于多人协作编写代码。
流程图.png
5.3 重要命令
-
git status:
查看仓库当前状态,输出信息包括:当前分支的名称、当前分支与远程分支的关系(例如,是否是最新的)、未暂存的修改(显示已修改但尚未使用 git add 添加到暂存区的文件列表)、未跟踪的文件(显示尚未纳入版本控制的新文件列表)。
加上‘-s’参数则输出剪短信息。
git status
git status -s
在空工作空间中手动新建一个readme.txt文件,内容为‘1111111111’。
13.png
-
git add:
将工作区源文件相关信息加入暂存区;
git add 文件名1 文件名2 文件名3......(多个文件之间空格隔开)
git add 文件夹1 文件夹2 文件夹3......(多个文件夹之间空格隔开)
git add . (add当前仓库下所有文件)
我用的:
git add readme.txt
14.png
-
git commit:
将暂存区内容(add进来的源文件信息)添加到本地仓库中,[message] 可以是一些备注信息;
git commit -m [message] 提交整个暂存区到本地仓库中,;
git commit [file1] [file2] ... -m [message] 提交暂存区的指定文件到本地仓库;
我用的:
git commit readme.txt -m '第一次提交readme'
15.png
其他有用命令见:
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
六、Github上建立远程仓库
前面我们已经建立了一个本地仓库Git_cgx(里面包含了工程代码文件),现在我们想将这些信息上传到Github上,一来相当于备份代码,二来可以跟其他人进行协作。
为此,首先需要在Github上也建立一个仓库(远程和本地仓库可以不同名称,建议同名。),操作很简单,先登录自己账号:
16.png
七、“本地仓库”与“远程仓库”联动
现我们已经在本地创建了一个仓库Git_cgx,又在github创建一个远程仓库Git_cgx,剩下就是让两者关联上了!主要使用git remote命令
一个本地仓库可以关联多个远程仓库!
7.1 本地仓库链接远程仓库
-
git remote:
用于管理 Git 本地仓库中链接的远程仓库,包括添加、查看、重命名和删除远程仓库等功能。
https://www.runoob.com/git/git-remote.html
git remote:列出当前仓库中已配置的远程仓库。
git remote -v:列出当前仓库中已配置的远程仓库,并显示它们的 URL。
git remote add <remote_name> <remote_url>:添加一个新的远程仓库。指定一个远程仓库的名称和 URL,将其添加到当前仓库中。
git remote rename <old_name> <new_name>:将已配置的远程仓库重命名。
git remote remove <remote_name>:从当前仓库中删除指定的远程仓库。
git remote set-url <remote_name> <new_url>:修改指定远程仓库的 URL。
git remote show <remote_name>:显示指定远程仓库的详细信息,包括 URL 和跟踪分支。
我用的:
git remote add origin https://github.com/chengaoxiang1985/Git_cgx.git
17.png
7.2 将本地仓库文件push到远程仓库
-
git push
将本地的当前分支版本上传到远程仓库并合并。
https://www.runoob.com/git/git-push.html
git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号及后面部分
git push <远程主机名> <本地分支名>
我用的:
git push -u origin master 初次推送
git push origin master 后续更新(省略-u参数)
18.png
八、克隆(clone)一个远程仓库到本地
clone下来的仓库会自动和远程仓库建立关联,无需再手动关联。
远程仓库只有1个分支(branch)
git clone url
远程仓库有多个分支(branch),需要指定分支名称。
git clone -b 分支名 url
例,在D盘新建一个名为My_clone的空目录;
git bash进入该目录,并执行以下代码,自动将远程仓库Git_cgx克隆到了本地:
git clone https://github.com/chengaoxiang1985/Git_cgx.git
19.png
我们再验证下,克隆下来的仓库是否已经和远程被克隆仓库关联了(注意此时的bash要在克隆下来的Git_cgx目录中):
20.png
其他关于clone命令的使用,见;
https://blog.csdn.net/weixin_45743799/article/details/105900114
https://blog.csdn.net/wudinaniya/article/details/104125961
参考:
https://zhuanlan.zhihu.com/p/30044692
https://blog.csdn.net/qq_35206244/article/details/97698815
https://zhuanlan.zhihu.com/p/584609161
https://www.runoob.com/git/git-workspace-index-repo.html
https://zhuanlan.zhihu.com/p/140437826
https://docs.github.com/zh







网友评论