作者:荒原之梦
Git简介:
Git是一款分布式版本控制系统,可用于项目的版本管理。Git可以管理本地代码仓库与远程代码仓库间的连接以及进行版本控制,使得我们可以在本地离线进行修改等操作,之后再将代码提交到远程代码仓库,方便团队协作。
Git官网:
https://git-scm.com/
Git百度百科:
https://baike.baidu.com/item/GIT/12647237?fr=aladdin
Git Github主页:
https://github.com/git
在使用Git与远程仓库进行代码交互的时候会遇到一些操作动作,如“克隆”、“推送”和“拉取”等,这些动作的英文名称以及对应的含义如下:
名称 功能 Clone(克隆) 将远程仓库里面的代码复制一份到本地 Push(推送) 将代码推送到远程仓库中 Fetch(获取) 获取远程仓库中发生变化的代码 Merge(合并) 将远程仓库中发生变化的代码与本地存储的没有发生变化的代码合并以使本地仓库和远程仓库代码保持一致 Pull(拉取) 功能等同于“fetch+merge” Commit(提交) 将修改推送到本地仓库中 Fork 将代码从别人的远程仓库复制到自己的远程仓库 Pull request 将自己远程仓库中的代码复制一份到别人的远程仓库(该操作将会询问对方是否接受)
如果要将修改Push到别人的远程仓库,必须首先Fork别人的代码到自己的远程仓库,修改完再Push. 而不能直接Clone别人的代码到本地,这样再想Push到别人的远程仓库是不行的。另外,经实践发现,直接Clone自己的远程仓库到本地再Push到自己的远程仓库也是不行的。
具体步骤如下:
1 下载并安装Git
如无自定义需要,使用默认配置安装即可。
2 在Coding上添加一个项目
在荒原之梦网(zhaokaifeng.com)的这篇文章 使用Coding Pages托管网站 中有在 Coding 上添加一个项目的介绍,可以参考。
3 配置SSH
生成SSH公钥,输入:
ssh-keygen -t rsa -C XXX@XXX.XXX
XXX@XXX.XXX 为注册Coding时使用的邮箱。
之后会提示输入用于保存公钥的文件:
Enter file in which to save the key (/c/Users/Master/.ssh/id_rsa):
这里直接回车,使用默认的文件id_rsa 保存即可。
接下来会提示:
Enter passphrase (empty for no passphrase):
这里是提示我们是否要为提交代码的操作设置密码。 如果设置密码则在提交项目时就需要使用密码。回车表示密码为空,即不设置密码。
之后提示:
Enter same passphrase again:
再次回车或输入刚才设置的密码。
之后会看到公钥成功创建的提示:
Your public key has been saved in /c/Users/Master/.ssh/id_rsa.pub.
查看公钥,输入:
cat /c/Users/Master/.ssh/id_rsa.pub
将公钥复制下来,登陆Coding,在我的账户->SSH公钥 处粘贴刚才生成的公钥,之后点击添加 。
如果粘贴后公钥末尾有空白行或空格要删掉它们。
4 创建本地代码仓库并Clone远程代码仓库
在本地新建一个文件夹A。
“A”为远程仓库的仓库名
进入A,右键点击Git Bash Here .
初始化仓库,输入:
git init
之后会在A里面产生一个.git 隐藏文件夹。
Clone远程仓库(远程仓库中没有代码也可以这样执行),在本地仓库中输入:
git clone A https://git.coding.net/XXXXXX.git
“A”为远程仓库的仓库名
其中https://git.coding.net/XXXXXX.git 为远程仓库的HTTPS地址,可以在项目的代码 标签处找到:
图 1
之后会弹出登录凭证验证窗口:
图 2
输入Coding的用户名(一般为邮箱)和登陆密码点击确定 即可。
如果远程仓库里面有代码,Clone执行完毕后我们就可以在本地看到远程仓库中的代码了。
5 将本地代码仓库的更改推送到远程代码仓库
现在假设我们在本地代码仓库新建了一个文件1.txt . 下面演示如何将这个更改推送到远程代码仓库:
进入本地代码仓库中,查看代码状态,输入:
git status
这时Git会用红色字体显示1.txt ,说明这个文件是和远程仓库中的内容不一致的。
将所有更改都加入到暂存区域,准备上传:
git add .
也可以使用
git add 文件名
指定加入到暂存区域的文件。
但是当我们输入:
git commit
准备提交代码时,回车却出现了下面的警示信息:
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
根据上述提示,输入:
git config --global user.email "you@example.com"
回车。
输入:
git config --global user.name "Your Name"
回车。
再次执行:
git commit
这次没有出现错误提示,而是打开了一个文本。按下i 开始输入所提交代码的备注,之后保存并退出。
之后输入:
git push origin master
这时我们在浏览器上再刷新Coding账号中的该项目就可以看到刚才推送过来的1.txt 文件了。
输入:
git status
会看到:
nothing to commit, working directory clean
至此,本地更改已经全部推送到远程仓库。