git的三个区:
工作区:正在编辑的
暂存区 (作为过渡层 避免误操作 保护工作区和版本区 分支处理)暂时保存。
版本区(库):稳定版本
1首先在github官网上创建远程库,然后,从远程库克隆到本地。
2 克隆远程仓库两个方法:
1 进入自建文件夹--git clone 远程仓库网址。
2 进入自建文件夹-- git clone git@github.com:mu-qing/仓库名
第一种速度慢 且每次推送内容 需要输入用户名和密码
3 设置贡献者 进入克隆下来的仓库---
$ git config --global user.name "mu-qing"
$ git config --global user.email "m13998458614_1@163.com"
4 查看所有配置项 :git config --list
5 查看当前配置名字 :git config --global user.name
6 查看工作状态: git status
7 把文件加到暂存区: git add readme.txt (把某一个指定的加入到暂存区)
git add .(把所有修改过的文件提交到暂存区)
8 把文件从缓存区提交到仓库 $ git commit -m "随便写点说明注释"
合并7,8 步骤: $git commit -a -m "随便写点说明注释"
9 查看提交历史:git log
10 对比暂存区与工作区的不同: git diff
对比暂存区与版本库的不同: git diff --cached(--staged)
对比工作区与版本库的不同: git diff master
11 查看修改后的文件内容: cat readme.txt
撤销
1 撤销到工作区未修改的状态:git checkout -- <file.name>
2 从暂存区返回到工作区:git reset HEAD <file.name>
3 撤销之前的提交 重新提交: git commit -m "注释" --amend
删除
1 工作区:手动删除
2 删除暂存区:git rm <file.name>(必须先把工作区删除,命令才有用)
git rm -f <file.name>(可以同时删除暂存区和工作区)
git rm --cached <file.name>(只会删除暂存区)
回退(恢复)
1 对指定文件的回退: git checkout commit_id <file.name>
2 可以回退整个版本: git reset --hard commit_id
3 回退到上一个版本: git reset --hard HEAD^
3 回退到上n个版本: git reset --hard HEAD~2
4 指定的ID号 回退到任意一个版本状态。HEAD~<num>
5 查看历史操作: git reflog
同步到远程仓库
1 查看远程仓库的名字 git remote
2 查看仓库的远程地址:git remote -v
3 把本地库的所有内容推送到远程库上 git push origin master
4 添加新的协作人员
在官网上 点击 new collaborator --> add collaborator
多人协作解决冲突
1 git fetch 同步更新代码 就是在github上下载最新的代码 并不与当前的分支合并,需要通过手动的合并,一般都是通过这种方法
2 git pull 同步更新代码 github上下载最新的代码 自动与当前的分支合并
3 git diff master origin/master 查看远端的代码和本地的区别
4 git merge orgin/master 合并远端和本地的分支 本地会出现远端和本地的内容。自己决定用哪个。然后再进行提交。
参与开源项目 :开源项目 没法直接改写
1 fork(克隆别人项目的一个版本放到了自己的用户名下 )
2 改完推送到自己的项目上
3 找到项目主页 右边 点击 pull request--new pull request --create pull request ---create pull request
收到修改的人 如果没问题 可以合并
也可以在线修改 然后同上 找到项目主页 右边 点击 pull request--new pull request --create pull request ---create pull request
git分支
1 创建新分支: git branch 分支名
2 查看当前所有分支: git branch
3 切换到某个分支:git checkout 分支名
4 git checkout -b 创建并切换到这个分支
5 合并分支:git merge 分支名
6 删除某个分支(无法删除未合并的分支):git branch -d 分支名
7 解决(可以删除未合并的分支):git branch -D 分支名
8 查看当前与master分支合并过的分支:git branch --merged
9 查看当前与master分支没合并过的分支:git branch --no-merge
分支冲突 (不同的分支改变了相同的部分):
git status 查看当前冲突文件
手动修改 然后重新提交
github上的分支
把本地的分支同步到github上:git push origin 分支名
常用命令:
ls 查看当前主要内容
mkdir 创建文件夹
tab 自动补全功能
设置别名:git config --global alias.co checkout 修改别名
co=checkout
git config --list 查看命令列表