社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
安装官网教程安装即可。
linux:sudo apt-get install git
如果想为每个项目单独配置不同的git用户,在每个项目的主目录下执行:git config user.name "xxxxx"
git config user.email "xxx@xxx"
如果让当前电脑的所有git操作均使用同一个git账户:git config --global user.name "xxxxx"
git config --global user.email "xxx@xxx"
如果想让电脑记住github的账号密码:
如果想为全局配置记住账户密码:git config --global credential.helper store
如果想为每个单独项目配置记住账户密码:git config credential.helper store
进行如上操作之后,会记住上次输入的账号密码,之后操作不再需要账号密码。
删除已经记住的密码rm ~/.git-credentials
如果从零开发,最好的方式是先创建远程库,然后从远程库克隆。
(如果你想将本地的项目文件上传至github,可以参考下一节。)
从github上clone代码git clone https://github.com/用户名/项目名
修改代码之后,现将文件加入本地暂存区。git add 文件名 #表示将文件加入本地暂存区
或git add . #表示将当前文件夹下所有文件添加至暂存区
如果想要删除某个文件git rm filename
(同时会删除本地文件)
确认提交更改git commit -m "提交的更改说明"
将本地库内容推送到远程仓库github。输入下述命令,输入命令之后,按照提示输入github的用户名和密码即可。git push origion master
如果提示账户密码错误,那么在输入密码阶段需要输入token。参考github账户密码不正确
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并覆盖本地文件:git fetch origin
git reset --hard origin/master
首先新建文件夹创建一个新的仓库(repository):mkdir learngit
cd learngit
然后git仓库初始化:git init
在文件夹中添加文件,比如:classification.cpp,然后可以添加文件到git仓库,分两步进行:
用git add命令告诉git,将文件添加到仓库:git add classification.cpp
用git commit命令告诉git,将文件提交到仓库:git commit -m "add a new file"
其中-m后面的命令是对本次提交的说明。
为啥添加过程不能用一条git commit命令来完成呢,这儿涉及一个工作区和暂存区的概念。工作区是电脑能看到的目录,比如learngit文件夹是一个工作区(如下图左所示)。在learngit文件夹有个隐藏目录.git,不属于工作区,而是git的版本库,版本库中重要的两部分是暂存区(下图中),和创建的第一个分区master(下图右)。
上面的两步所做的工作分别为:
git add将文件修改添加到暂存区;
git commit提交更改,即将暂存区的内容提交到当前分支;
我们创建版本库时,git自动创建了master分支,git comit即将往master分支上提交更改。可以理解为需要提交的文件修改全部放到暂存区,然后一次性提交暂存区的修改。
添加到远程仓库(github)
git是分布式版本控制系统,同一个git仓库可以分布到不同的服务器上,可以是公司的git服务器或者github。下面以github为例,介绍怎样将本地git仓库添加到远程仓库。
本地仓库和github的连接有两种方式:
HTTPS连接(比如地址为:https://github.com/username/repo_name.git);
在github创建一个名为learngit的空的仓库(注意不要使用README.md初始化仓库,否则需要先下载README.md,然后才能上传。),然后将本地仓库与github仓库相关联并推送内容。包含下面两步:
第一,输入下面命令:git remote add origin https://github.com/username/learngit.git
其中,origin代表远程库,是git的默认叫法。
第二,将本地库内容推送到远程库:git push -u origin master
由于远程库是空的,第一次推送master分支时,加上了-u参数。
git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
这样,我们在github上得到了和本地仓库相同的仓库。
之后再次修改本地仓库内容时,推送到远程github仓库,即可输入简化的命令:git push origin master
SSH连接(比如地址为:git@github.com:username/repo_name.git);
SSH加密传输首先要有SSH key,生成过程包括:
ssh-keygen -t rsa -C "your_email@youremail.com"
ssh -T git@github.com
git remote add origin git@github.com:username/learngit.git
即可。HTTPS连接与SSH连接的区别
使用HTTPS连接的不同之处在于:其一,不需要SSH key;其二,上面第一条命令地址要改为HTTP地址,其他步骤相同。
HTTPS连接因为不需要SSH key,步骤简单,是github推荐的连接方式。然而其缺点为速度比SSH连接方式慢。
我安装的时候有两个小问题:
在测试ssh的时候,显示Host Key Verification Failed
。网上的教程说删除~/.ssh/known_hosts文件即可,但是我的文件夹里只有id_rsa和id_rsa.pub,并没有known_hosts文件。问题便在这里,别人的是因为已经存在,导致不对,需要删除。我的是因为没有,需要创建。在命令行输入ssh-keyscan -H github.com >> ~/.ssh/known_hosts
即可。感谢ssh测试错误。
failed to push some refs to 'xxx.git'
解决上述问题后,在最后一步push的时候,发现又出问题。查了一下,发现时在github网页上创建仓库时,默认创建了README文件,但是本地没有。所以需要pull下来合并之后再上传。使用git pull --rebase origin master 命令合并代码,然后push就可以了。感谢push-pull
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!