Git简介
Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上。
Git是分布式版本控制系统,它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。
Git工作区域
向仓库中添加文件流程
Git安装和配置
目的
通过git管理github托管项目代码
下载安装
- GIt官网下载:https://www.git-scm.com/download/win
- 一直点next,默认安装就行,可以修改下安装目录。
- 安装完打开出现这个
输入git查看一些详细信息以及指令
如输入 ls 看到下面这些就是安装成功了
基本信息设置
设置用户名和邮箱
设置用户名和邮箱,修改后提交到远程仓库能够看到是提交者,用于在团队合作开发中,表明代码作者。
1.设置用户名
$ git config --global user.name "Your GitHub Name"
2.设置邮箱
$ git config --global user.email "GitHub email@example.com"
3. 查看当前登录账号:
git config user.name
4. 查看当前登录邮箱:
git config user.email
5. 修改用户名
git config --global user.name "Your_username"
6.修改邮箱
git config --global user.email "Your_email"
输入 $ git init 启动Git。
生成ssh用于GitHub验证
在命令框中输入 $ ssh-keygen -t rsa -C "email@example.com"
按三次回车生成公钥,在C:\Users\Administrator.ssh
下找到id_rsa.pub文件,记事本打开复制公钥。
当然这里也是有提示的。
记事本打开
配置成功后他会给你发一份邮件
可以在本地测试一下配置是否成功,在Git Bush命令框(就是刚才配置账号和邮箱的命令框)中继续输入以下命令,回车
ssh -T git@github.com
这样就配好了
Git的使用
常用git命令
文件操作
mkdir 文件名:创建文件夹
cd 文件夹名:进入文件夹
touch 文件名:创建文件
git rm 文件名
复制仓库
git init:在本地初始化,创建Git仓库
git clone: 复制仓库到本地仓库。
git status:查看当前状态
提交信息
git add 【文件名】或者【 . (全部)】:将文件从工作去提交到暂存区
git commit -m “提交描述”:将暂存区提交到本地仓库
git push:将本地仓库提交到远程仓库
在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了
git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,
例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支,
origin 是远程主机名。第一个master是本地分支名,第二个master是远程分支名。
git push origin master
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
git push origin :refs/for/master
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master
git push origin
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支
git push
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名
更新仓库信息
git pull:将远程仓库的改动更新到本地工作区
git remote -v:查看origin和upstream源
git remote add origin/upstream git地址:添加origin/upstream源
git fetch upstream:获取upstream源仓库的提交和改变
git checkout master:切换到master
git merge upstream/master:合并远程的master
Git本地仓库操作
创建本地库
1、创建文件夹,在该文件夹内打开Git的命令窗口
git init
主要用来初始化一个空的git本地仓库。输入命令后,会在当前目录下会自动生成.git隐藏文件夹,该隐藏文件夹就是git版本库。
下载Github上的内容
首先我们来看看将我Github上的内容复制到我的这个新建文件夹里
以我的GitHub为例
里面有这些东西,比如我想把他下载到本地,我要先找到这个的地址
git clone https://github.com/lizheng-1/cnn1.git
可以看到已经下载到本地了
向仓库添加文件
开发者在本地修改内容后,需要进入要操作的文件夹内进行git操作
git add . # . 表示当前文件夹
git commit -m "注释信息“
git push #推送到开发者仓库
3.2.1 开发者工作区–>开发者远程仓库
命令操作,打开 git bash 命令:
cd test #进入文件夹
touch one.js
git add one.js #添加需要提交的文件
git status #查看状态
git commit -m “修改XXXXXX” #提交到本地仓库
git push #从本地仓库推送到远程仓库
实战操作
- (先进入项目文件夹)通过命令
git init
把这个目录变成git可以管理的仓库
这里我创建了一个666文件夹,一个txt文件,文件夹下还有一个2.txt.。现用init初始化,出来了。git文件夹
- 把文件添加到版本库中,使用命令
git add .
添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件。如果想提交某个文件可以git add 1.txt
- 用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明git
commit -m '提交'
- 关联到远程库git remote add origin 你的远程库地址
如:git remote add origin https://github.com/lizheng-1/cnn1
- 获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)
git pull --rebase origin master
- 把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后可能会要求输入用户名、密码,验证通过后即开始上传。
git push -u origin master
可以看到我的GitHub已经有了这两个文件
修改仓库文件
v1 li.txt 打开要修改的文件 修改后 :wq退出
git add li.txt
git commit -m '修改文件'
git status
之后打开这个,修改完成后可以按下esc然后**:wq**退出这个界面
删除仓库文件
这时候只是在自己的GitHub仓库,还没有到主程序员的GitHub仓库
解决git push代码到github上一直提示输入用户名及密码的问题
在github系统上克隆代码的地址默认采用的是http的方式,我们一般这样clone代码: git clone https://github.com/yychuyu/linux-system-programming.git 而如果采用ssh方式的话,是这样clone代码的: git clone git@github.com:yychuyu/linux-system-programming.git
解决办法很简单,将http方式改为ssh方式即可。
-
先查看当前方式: git remote -v
-
把http方式改为ssh方式。先移除旧的http的origin: git remote rm origin
-
再添加新的ssh方式的origin: git remote add origin git@github.com:yychuyu/linux-system-programming.git
-
检查一下有没改变成功: git remote -v
-
改动完之后直接执行git push是无法推送代码的,需要设置一下上游要跟踪的分支,与此同时会自动执行一次git push命令,此时已经不用要求输入用户名及密码啦! git push --set-upstream origin master
其实自我感觉用Git在本地操作还不如在网页上操作方便呢,在本地确实有点麻烦,而且下载上传还贼慢。但用pycharm这类软件可以通过Git直接上传会更简单。