#Git的初识
##Git 的使用
Git 使用初尝试
新建项目来操作
克隆已有项目来操作


Git 的使用
by 若愚@饥人谷





Git 的使用








Why Git
关于版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
本地版本控制系统
集中式版本控制系统(SVN)
分布式版本控制系统(Git)
Git 优势
诞生自2005,Linux 开源社区
速度
简单的设计
允许上千个并行分支
分布式
安装
##简单使用
重要概念
已提交**(mommitted)** 该文件已经被安全地保存在本地数据库中了
已修改**(modified)** 修改了某个文件,但还没有提交保存
已暂存**(staged)** 把已修改的文件放在下次提交时要保存的清单中

Git 优势
诞生自2005,Linux 开源社区
速度
简单的设计
允许上千个并行分支
分布式
安装
简单使用
重要概念
已提交(mommitted) 该文件已经被安全地保存在本地数据库中了
已修改(modified) 修改了某个文件,但还没有提交保存
已暂存(staged) 把已修改的文件放在下次提交时要保存的清单中

Git 优势
诞生自2005,Linux 开源社区
速度
简单的设计
允许上千个并行分支
分布式
安装
起步
初次使用需要设置姓名和邮箱
git config --global user.name"你的姓名"git config --global user.emailjohndoe@example.com
clone 项目
用于把一个GitHub是的项目clone(下载)到本地变为本地仓库
git clone git@github.com:jirengu/blog.gitcd blog
添加文件并提交
# 创建文件touch a.md# 在文件里写入一个字符串echo"hello"> a.mdgit status

添加文件并提交
# 把当前目录下的新增和修改的文件添加到暂存区gitadd.git status

添加文件并提交
# 把暂存区的更新提交到本地库gitcommit -am"add file"git status

添加文件并提交
# 把当前本地库里的改动推送到远程库(origin)的master 分支git push originmaster

添加文件并提交
# 把暂存区的更新提交到本地库gitcommit -am"add file"git status

添加文件并提交
# 把当前本地库里的改动推送到远程库(origin)的master 分支git push originmaster

修改删除文件
# 把远程仓库的变动更新合并到本地仓库git pull# 修改文件vim a.mdgit add .# 这里需要注意,如果提交消息包含大量字符串,提交参数不用加 m# 此时会进入 vim 界面,按下i进入编辑状态,进行编辑# 编辑完成后按下 esc 进入命令态, 输入 :wq 保存退出 vimgit commit -agit push origin masterrm -rf a.mdgit add .git commit -am"删除a.md"#如果之前已经git push origin master 过,后面可以直接简化成 git pushgit push
问题
git clone url和git pull有什么区别
本地仓库和远程仓库的区别?
origin 代表什么?
复杂使用
本地创建一个 git 项目推送到远程空仓库
mkdir newProject
cd new Project
# 把一个文件夹初始化成一个本地 git 仓库
# 注意 仓库和文件夹的区别在于仓库下有一个隐藏的 .git文件夹,里面有一些信息
# 对于一个仓库,删除.git文件夹,就变成一个普通文件夹了
git init
touch index.html
echo"hello">index.html
git add .
git commit -am"init"
###本地创建一个一个Git项目推送到远程空仓库
# 查看本地库里记录的远程库地址
git remote -v
# 这里把远程库的地址添加个标签叫origin
git remote add origin git@github.com:jirengu/blog2.git
# 推送到远程库地址
git push origin master
-----
##本地创建一个git项目推送到远程空仓库
#慎用,这样强制推送会覆盖别人的代码
git push -f origin master
# 在添加一个远程库的标签
git remote add gitlab git@gitlab.com:abc/blog.git
# 推送到gitlab标签的地址上
git push gitlab master
# 删除gitlab 标签
git remote remove gitlab
# 修改origin标签对应的地址
git remote remove gitlab
# 修改origin标签对应的地址
git remote set-url origin git@github.com:jirengu/blog3.com
# 把gitlab标签改为coding
git remote rename gitlab coding
###分支操作
# 创建本地库dev 分支
git branch dev
# 切换到dev 分支
git checkout dev
touch b.md
git add .
git commit -am "add"
# 推送到origin地址的dev分支上
git push origin dev
###分支合并
git checkout master
# 把dev 分支上的内容合并到当前分支(master)上
git merge dev
###冲突
当自己和别人改同一个文件的同一个地方,在执行git pull时
更新本地合并时会出现冲突
>* 1.修改冲突文件
* 2. 重新提交
任务
在 github 上创建一个项目,通过命令行的方式执行添加、删除、修改文件
注册 coding.net 账号,把当前项目再推送到 coding 上
网友评论