Talk is cheap, show me the code.
本文内容包括创建本地仓库,创建远程仓库,获取远程仓库,提交内容至本地仓库,push到远程仓库。
centos下进行操作的。
本地创建仓库:
在本地创建一个gitRepo的仓库,创建gitRepo目录,进入目录执行git init即可。
$cd gitRepo
$git init
创建远程仓库:
远程仓库是在github官网上创建的,不是私人的,远程仓库名为C-primer,拷贝访问路径,然后在本地执行下面的命令,即可把这个远程仓库配置在本地,并取名为origin。
$git remote add origin https://github.com/yzlwhu/C-primer.git
这个命令实际上作用是在gitRepo/.git/config中增加了一栏配置:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://github.com/yzlwhu/C-primer.git
注意这里需要把这个配置里面改成:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://yzlwhu@github.com/yzlwhu/C-primer.git
否则执行git push将本地分支合并至远程分支时会报错:
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/yzlwhu/C-primer.git/info/refs
fatal: HTTP request failed
提交内容至本地仓库:
首先执行git add file/directory将文件或目录添加到本地仓库的索引,此时本地仓库中还没有对应的内容,注意需要提交的文件或目录必须先拷贝到本地仓库所在目录,也就是有.git的目录,否则无法进行git add。然后执行git commit [-a] -m “description”将内容提交至本地仓库。
$cp /home/lee/C++primer ./
$git add C++primer
$git commit -a -m "C++primer exercises"
合并本地仓库分支到远程仓库分支:
执行git push origin master。
git push origin master
注意这时候可能会报错:
(gnome-ssh-askpass:60860): Gtk-WARNING **: cannot open display:
这时候只需要执行:
$unset SSH_ASKPASS
$git push origin master
输入密码后即可将本地仓库gitRepo的master分支提交到远程仓库https://github.com/yzlwhu/C-primer.git的master分支。
拷贝远程仓库至本地:
如果需要把远程仓库拷贝到本地,然后进行修改,则无需前面的git init步骤,直接使用git clone即可拷贝远程仓库至本地。
git clone https://github.com/yzlwhu/C-primer.git