2.使用github
2.1目的:借助github托管项目
2.2基本概念:
2.2.1 仓库(Repository)即项目再GitHub上开源一个项目,那就必须新建一个Repository,如果开源项目多,久要创建多个Repository。
2.2.2 收藏(star)仓库主页star按钮,意思是收藏项目的人数
2.2.3 复制克隆项目(Fork)
2.2.4 发起请求(Pull Request)
2.2.5关注 wacth 关注项目,如果项目有更新,github会发送通知。
2.2.6 事物卡片(Issue)发现代码bug
2.3 注册github
2.3.1官网 https://github.com/
- Github主页:左侧显示动态信息,右侧显示所有的仓库
- 仓库主页:显示项目的信息
- 个人主页:显示个人信息
验证邮箱时候,需要注意反垃圾的白名单
2.4创建仓库/创建新项目
2.4.1:一个git库对应一个开源库 通过git来管理git仓库
2.5管理仓库
2.5.1 Create new file 创建文件
2.5.2 Upload files 上传文件或者文件夹
三、git学习笔记
3.1git工作区域
仓库 项目文件保存的地方
暂存区 add的的文件或项目还没由commit时候存放的地方
工作区 就是在项目所在位置,对项目文件进行新建、编辑、删除操作的地方
3.2 git基本工作流程
- 初始化一个 Git 仓库,使用
git init
命令。 - 添加文件到 Git 仓库,分两步:
- 第一步,使用命令
git add <file>
,注意,可反复多次使用,添加多个文件; - 第二步,使用命令
git commit
,完成。
3.3 git 初始化和仓库创建与操作
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
3.3.1设置用户名
git config --global user.name ‘你的网络仓库用户名’
3.3.2 设置用户名邮箱
git config --global user.email ‘你的网络仓库注册邮箱’
3.3.3查看设置
如果git status
告诉你有文件被修改过,用git diff
可以查看修改内容。
git log --pretty=oneline
git log --graph --abbrev-commit
3.3.4 添加文件到仓库
创建文件 touch filename
git add filename
3.3.5 提交文件到仓
并非所有文件都需要进行版本控制,对不需要版本控制的可以在.gitignore文件中加入文件名,或者目录名,此外git支持通配符和正则表达式,有一点需要注意的, /dir/*/t.txt, dir/**/t.txt
git commit -m “操作描述”
3.3.6 修改仓库文件
- vi filename
- git add filename
- git commit -m “操作描述”
3.3.7 删除文件
- 删除文件(工作区) rm filename
- Git中删除文件 git rm filename
- 提交操作 git commit -m “提交操作描述”
- 删除目录 使用rm -rf dirname 不使用rmdir
3.3.8 修改文件名称
使用命令 git mv oldname.txt newname.txt
4.git的分支
-
git branch 查看分支
-
git branch new_branchname
-
git checkout branchname 切换分支
-
git branch -d branchname 删除分支 (但不能删除当前所处分支)
-
git branch -D branchname 删除分支 (但不能删除当前所处分支)
-
git merge branchname 合并分支
-
合并分支后可以使用git branch -d branchname 可以正常删除分支
-
一条commit对象链就是一条工作记录线,每次提交就像一个快照。(单向链表)
-
HEAD 指向当前分支指针 master指向提交,如果在master分支上新建了一个dev分支,实际上文件一点变化都没有,只是新建了一个名字为dev的指针,与master指向一个提交,若切换到dev分支,HEAD指针就指向了dev
-
合并分支冲突,如果在两个分支上修改了同一文件同一位置,git不知以何分支为准合并,所以会提示分支冲突,手工修复冲突。
会以一下方式显示
common content
<<<<<<< HEAD
branch1 content
========
branch2 content
‘’>>>>>>>(编辑器问题 忽略’'号)
-
git branch -m master master2 就是将分支master名字改为master2
5、分支进阶和版本回退
-
分支进阶
-
fast-forward模式,如果可能,合并分支时Git会用fast-forward模式,在这种模式下,删除分支是会丢掉分支信息,合并分支时加上 --no-ff 参数会禁用fast-forward,由此一来会多出一个commit id
命令: git --no-ff dev(分支名称)
-
查看log git log --graph (一图形化的方式查看提交历史)
-
-
版本回退:
- git reset --hard HEAD^ 回退上一个版本
- git reset --hard HEAD~100
- git reset --hard 3628164…(id)
-
上一个版本就是
HEAD^
,上上一个版本就是HEAD^^
,当然往上 100 个版本写 100 个^
比较容易数不过来,所以写成 HEAD~100。 -
回到版本 git reflog查看历史命令
6、checkout进阶与stash
-
checkout 丢弃工作目录或文件的变更 git checkout – [filename] 丢弃暂存区最后一次添加的文件内容所做的变更。
注意,只有在工区的文件才会起作用,一旦执行了 add指令,就不起作用,因为文件被纳入暂存区了。
-
git reset HEAD filename 将之前添加到暂存区(stage,index)的内容从暂存区移除到工作区。
-
git checkout 可以回退到某一个提交点(但是会是游离状态的,git checkout -b commitId 也就是创建一个游离的分支),但是和HEAD有区别 如果进行修改了,commit提交会指向一个新的提交点。如果切换为真实分支,那么提示新建一个分支来保存这个游离的分支。
-
git stash 保存当前未提交的状态,然后切换分支
- git stash list 查看所有临时保存的状态
- git stash pop stash@{0} 弹出(恢复)某个临时保存的状态,然后把其他的状态删掉
- git stash apply stash@{0} 恢复状态,但不删除状态
7.标签与diff
8、Git管理远程仓库 (代码集中化管理)
4.1将本地仓库同步到远程仓库中
4.1.1 添加远程仓库 git remote add [origin] ‘[url]’ //“origin是git默认的仓库简写名称”
4.1.2 修改远程仓库
修改命令 git remote set-url origin ‘[url]’
先删除后添加 git remote rm origingit remote add origin [url]
git push 命令 本地仓库同步到到远程仓库中
4.2git克隆操作
目的:将远程仓库的项目复制到本地
git clone 仓库地址
git修改远程仓库地址
方法有三种:
-
修改命令
git remote set-url origin [url]
-
先删后加
git remote rm origingit remote add origin [url]