git常用的基础指令
5. touch: 新建文件如: touch index.js。git clone -b 分支名 地址 // 克隆分支的代码到本地。git init // 初始化 在工作路径上创建主分支。10. reset:重新初始化终端、清屏。3. pwd: 显示当前所在的目录路径。4. ls: 列出当前目录中所有文件。2. cd.. :返回上级目录。7. mkdir: 新建文件夹。8. rm -r: 删除文件
目录
8.add添加到“暂存区”、commit提交到“本地仓库”、push推送到远程仓库
前言
学习git前 先明白一个概念 版本控制
版本控控制是在开发过程中,对我们文件的管理的修改历史,备份便于恢复以前的版本工程技术
1实现对人协同开发
2跟踪文件的历史纪录
3组织和保护你的源代码和文件
版本控制工具:git、svn、cvs、vss...
版本控制:本地版本控制、集中版本控制、 分布版本控制
集中版本控制:将所有的东西 放在集群上(中央处理器上)(需要联网)有很大风险服务器损坏,丢失所有数据; 代表产品:vss、svn、cvs;
分布式版本控制: 没有中央处理器,每个人的电脑就是完整的版本库(不需要联网) 代表产品:git;
1. 安装git
http://npm.taobao.org/mirrors/git-for-windows/
2. git安装后-指定名称和邮箱
提交仓库需要这些信息,才知道是谁提交的
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
3.设置公钥,添加到远程仓库的ssh中
运行下列代码,将生成公钥添加到远程仓库,就能将文件推送到远程仓库
ssh-keygen -t rsa -C 'your-email'
比如:在往github上push项目的时候,如果走https的方式,每次都需要输入账号密码,非常麻烦。而采用ssh的方式,就不再需要输入,只需要在github自己账号下配置一个ssh key即可!详细操作看这篇文章
4.基础指令
1. cd: 改变目录(打开目录)
2. cd.. :返回上级目录
3. pwd: 显示当前所在的目录路径
4. ls: 列出当前目录中所有文件
5. touch: 新建文件 如: touch index.js
6. rm: 删除文件
7. mkdir: 新建文件夹
8. rm -r: 删除文件夹
9. mv: 移动文件
10. reset: 重新初始化终端、清屏
11. clear: 清屏
12. history: 查看命令历史
13. help: 帮助
14. exit: 退出
15. #: 注释
5.git本地的四个工作区域
6.创建仓库
本地创建:
git init // 初始化 在工作路径上创建主分支
克隆仓库:
git clone 地址 // 克隆远程仓库
git clone -b 分支名 地址 // 克隆分支的代码到本地
克隆仓库会自动完成三件事 :拉取代码、初始化本地仓库、创建远程创库别名(默认origin)
7.版本控制
$ git log //查看提交历史记录,更详细的信息
$ git log --pretty=oneline //加参,简洁查看
$ git reflog //查看每一次修改历史
$ cat test.txt //查看文件内容
$ git status //查看工作区中文件当前状态
$ git reset --hard HEAD^(HEAD~100)(commit id) //回退版本
$ git checkout -- test.txt //丢弃工作区的修改,即撤销修改
$ git reset HEAD test.txt //丢弃暂存区的修改(若已提交,则回退)//修改文件名 将修改的文件名 放入暂存区
$ git mv (文件名) (重命名)
每次修改文件后,通过git status可以检测到哪个文件修改了,显示每个文件的状态 。
作用:当写好代码可以进行添加、提交。如果发现提交的代码有bug时,可通过版本id,将代码回溯。
8.add添加到“暂存区”、commit提交到“本地仓库”、push推送到远程仓库
$ git add test.txt //将修改的test添加到暂存区
$ git add . //将所有修改文件添加到暂存区
$ git commit -m "first add text.txt" text.txt //将text.txt提交到本地仓库
$ git commit -m "add 3 files." //将所有文件提交到本地仓库
9.创建远程仓库
可以将代码提交到自己仓库,或者将仓库代码拉取到本地(无需权限)
后面讲到团队协作(多人开发,项目不在自己仓库),当push推送代码,pull拉取代码都需要权限(需要邀请),原因很简单,毕竟是在别人的仓库项目开发
$ git remote add (origin别名) http://gitee.com/....(克隆/下载路径)
//给关联的远程库取名为origin
$ git remote //查看远程库的信息
$ git remote -v //查看远程库的详细信息$ git remote rm origin //删除远程仓库(解绑)
说明: 两个origin 表示可以拉取fetch/推送push
$ git push (origin 远程库别名)(master分支) //将本地内容推送到远程仓库(之后)
$ git clone (远程库地址) //克隆远程仓库$ git pull orgin master //拉取远程仓库
push时,会弹出 验证登录远程库:
如果成功登录,但还是报错: hint: Updates were rejected because the remote contains work that you do hint: not have,原因我放在最后讲
成功:(并且在远程仓库也能看到对应文件的变化)
10.分支
git branch 分支名 //创建分支
git branch -v //查看分支
git checkout 分支名 //切换分支
git merge 分支名 //将指定分支合并到当前分支
产生分支冲突:
当合并分支时,两个分支再同一文件的同一位置有两套不同的修改,git无法决定使用哪套代码,就需要认为决定 代码选择。例如下失败合并:
报错说明:合并冲突在hello.txt; 自动合并失败;(站在master上,合并list)
解决办法:找到hello.txt文件,手动修改需要保留的部分,然后将冲突文件重新add,commit到本地仓库(这样主分支master上的文件就没问题了),在到list分支上对master进行git pull抓取hello.txt分支文件(master,list分支实现同步)
11.团队协作(多人开发)
成员需要接收项目仓库拥有者的邀请,才有权限pull拉取项目、push推送项目仓库
12.跨团队协作
顾名思义,它不属于一个团队。打个比喻:团队A有3个成员在开发项目,但由于各种原因,又外聘了一个人(B团队)一起开发,因为不属于一个团队(没权限),所以B只能通过fork将项目叉到自己的远程库中,修改的代码提交到A,A接收查看代码后,可以选择将B的代码添加到仓库中。
13.vs code环境配置
1设置git路径
点击vscode设置,搜索 git.path, 点击设置编辑
找到git安装路径下cmd的git.exe文件
2.进行 指定git名称和邮箱的命令
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
就可以通过http或者设置ssh对仓库进行操作
3.当本地代码修改时,vscode提示
此时可以进行add、commit、push操作了
最后,在9章讲到登录远程报错:hint: Updates were rejected because the remote contains work that you do hint: not have
报错原因:
远程仓库和本地仓库文件不同步,解决方法是先执行git pull将远程仓库文件拉下来使得远程与本地同步。
解决方法:重新pull拉取远程库数据,在重新提交本地数据,完成同步数据(add、commit、push)
步骤:
//重新pull拉取远程库数据
git pull (origin远程库别名)(master 分支名)--allow-unrelated-histories
//重新提交本地数据,完成同步数据
1. git add -u
2. git commit -m 'update'
3. git pull origin master --allow-unrelated-histories
4. git push origin master
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)