github创建仓库到本地使用
前期准备
// 注册github账号
// 地址:https://github.com/
// 配置密匙
// 地址:https://jingyan.baidu.com/article/414eccf6a330926b431f0ac6.html
// 创建仓库git-test
// git/https 切换到git模式(避免每次重复密匙验证)
// 确保已经安装git bash,并打开
创建本地仓库
// 在本地创建文件夹
mkdir git-test
// 复制代码,如以下示例,粘贴到git bash运行
echo "# git-test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin [email protected]:webjimmylau/git-test.git
git push -u origin master
创建分支
// 最好统一先在github上创建分支
// 然后才在本地git pull分支
git命令
文件夹操作
clear // 清空代码
pwd // 显示当前目录
mkdir fileName // 创建文件夹
cd fileName // 进入文件夹
git init // 把这个目录变成git可以管理的仓库
文件操作
echo xxx >> text.txt // 创建文件并更改或直接更改文件内容
rm text.txt // 删除文件
cat text.txt // 查看文件内容
git diff text.txt // 查看文件修改的内容
git diff HEAD -- text.txt // 查看工作区和版本库里面最新版本的区别
// 新增到暂存区
git add -u // 新增、修改
git add . // 修改、删除
git add -A // 新增、修改、删除、替换
// git clean 删除未跟踪文件
git clean -f // 删除 untracked files
git clean -fd // 连 untracked 的目录也一起删掉
git clean -xfd // 连 gitignore 的untrack 文件/目录也一起删掉,
// 慎用,一般这个是用来删掉编译出来的 .o之类的文件用的
// 在用上述 git clean 前,防止重要文件被误删,
// 强烈建议加上 -n 参数来先看看会删掉哪些文件
git clean -nf
git clean -nfd
git clean -nxfd
文件撤销
// 撤销本地
git checkout -- filename
git checkout .
// 撤销暂存区
git reset HEAD filename
git reset HDAD .
// 撤销本地仓库
git reset commit-id // 保留(撤回前的分支提交的更改)在本地
git reset --hard commit-id // 不保留
提交到暂存区、本地仓库、远程仓库
git status // 查看是否还有文件未提交
git add -A // 添加所有文件到暂存区
git commit -m 'xxx' // 把暂存区的文件提交到仓库
git pull // 拉取远程仓库
git push origin master // 把本地master分支的最新修改推送到github远程仓库上
远程仓库操作
git clone git-test(url) // 克隆git-test项目
git remote add origin git-test(url) // 关联一个远程库
git pull origin master // 拉取成功 然后手动处理冲突
git branch --set-upstream master // 解决分支冲突
git push -u origin master // 把本地master分支和远程master分支关联起来
// 并把本地master分支的最新修改推送到github上
git push origin master // 把本地master分支的最新修改推送到github上
git push origin :dev // 在远程分支上删除dev分支
git remote // 查看远程库的信息 如:origin
git remote -v // 查看远程库的详细信息 如:origin
分支操作
git branch // 查看分支 *代表当前分支
git branch dev // 创建分支
git branch -d dev // 删除分支
git branch -D dev // 强行删除分支
git checkout dev // 切换分支
git checkout -b dev // 创建并切换分支
git checkout -b dev origin/dev // 创建并拉取远程分支dev并切换分支
git merge dev // 在当前分支上合并dev内容
git merge –no-ff -m 'xxx' dev // 合并分支,禁用‘Fast forward’模式,删除后还能保留分支信息
版本查看
git reflog // 查看全部版本(包括回滚后看不到的版本、误操作等)
git log // 详细查看分支提交历史(当前版本的祖先版本)
git log --pretty=oneline // 简单查看分支提交历史(去除作者和日期)
git log --pretty=oneline --abbrev-commit // 查看精简分支提交历史(缩小版本号长度)
git log --graph // 查看分支删除信息
版本回滚
git reset --hard HEAD^ // 回滚到上一个版本
git reset --hard HEAD~100 // 回滚到上100个版本
git reset --hard scd51f // 回滚到某版本
储藏操作
git stash // 将当前的工作现场隐藏起来
git stash list // 查看隐藏的工作现场
git stash apply // 恢复工作现场
git stash drop // 删除隐藏的一条工作现场记录
git stash pop // 恢复并删除
git命令使用方法
1、创建/修改/提交
cd D: // 进入D盘
mkdir www // 创建文件夹www
cd www // 进入文件夹www
mkdir git-test // 创建文件夹git-test
cd git-test // 进入文件夹git-test
pwd // 显示当前目录
git init // 把这个目录变成git可以管理的仓库
echo 111 >> readme.txt // 创建readme.txt文件 并添加内容111
git add readme.txt // 添加readme.txt文件到暂存区里面去
git commit -m "add file" // 把暂存区的文件提交到仓库
git status // 查看是否还有文件未提交
echo 222 >> readme.txt // 创建readme.txt文件并更改或直接更改readme.txt文件内容
git status // 查看是否还有文件未提交
git diff readme.txt // 查看readme.txt修改了什么内容
git add readme.txt // 添加readme.txt文件到暂存区里面去
git commit -m "change file" // 把暂存区里面的内容提交到仓库
2、版本回退
echo 333 >> readme.txt
git add readme.txt
git commit -m "change file"
git log // 查看版本历史记录
git log --pretty=oneline // 查看精简版本历史记录
git reset --hard HEAD^ // 退回到上一个版本 ^上一个 ^^上两个 ~100上100个
cat readme.txt // 查看readme.txt内容
git log // 查看版本历史记录,被覆盖的最新版本333已经看不到,按q退出查询
git reflog // 可以看到333内容的版本信息和对应的版本号
git reset --hard xxxxxx // 恢复到333内容的版本
cat readme.txt // 查看readme.txt内容
3、理解工作区与暂存区的区别
echo 444 >> readme.txt // 修改文件
echo test >> test.txt // 新增文件
git add readme.txt // 添加文件到暂存区
git add test.txt // 添加文件到暂存区
git commit -m "add files" // 把暂存区的文件提交到仓库
4、撤销修改
echo 555 >> readme.txt // 修改文件
cat readme.txt // 查看文件
git checkout -- readme.txt // 把文件在工作区做的修改全部撤销
git 666 >> readme.txt // 修改文件
git add readme.txt // 添加文件到暂存区
echo 777 >> readme.txt // 修改文件
cat readme.txt // 查看文件
git checkout -- readme.txt // 把文件暂存区的修改保留,把工作区为修改全部撤销
cat readme.txt // 666还有,777不见了
5、删除文件
echo b >> b.txt // 新建文件
git add b.txt // 添加文件到暂存区
git commit -m "change file" // 提交暂存区的文件到仓库
rm b.txt // 删除文件
git status // 查看文件状态
git checkout -- b.txt // 撤销删除文件
6、远程仓库
// 如何添加远程库
git remote add origin git-test(url)
git push -u origin master // 把本地master分支和远程master分支关联起来
// 并把本地master分支的最新修改推送到github上
git push origin master // 把本地master分支的最新修改推送到github上
// 如何从远程克隆
git clone git-test(url)
7、创建与合并分支
git branch // 查看分支 *代表当前分支
git branch dev // 创建分支
git checkout dev // 切换分支
git checkout -b dev // 创建并切换分支
cat readme.txt
echo 777 >> readme.txt
cat readme.txt
git add readme.txt
git commit -m 'xxx'
git checkout master
cat readme.txt // 只有之前的内容666
git merge dev // 在当前分支上合并dev内容
cat readme.txt // master上多了内容777
git branch -d dev // 删除dev分支
// 如何解决冲突
git merge fenzhi1 // 删除冲突,再提交
// 分支管理策略
git merge –no-ff -m 'text' dev // 合并分支,禁用‘Fast forward’模式,删除后还能保留分支信息
git branch -d dev
git log --graph --pretty=oneline --abbrev-commit // 查询被删除的分支信息
8、bug分支
git status // 有看到新增和修改的文件
git stash // 将当前的工作现场隐藏起来
git status // 隐藏之后,查看状态,是干净的
git checkout -b issue-404 // 创建和切换分支到issue-404
git add readme.txt // 把文件添加到暂存区
git commit -m 'fix some bug' // 把暂存区的文件提交到仓库
git checkout master // 切换分支到master
git merge --no-ff -m 'merge issue-404' issue-404 // 合并issue-404分支
cat readme.txt // 当前master分支可以看到issue-404分支的内容,完全一致
git branch -d issue-404 // 在master分支上删除issue-404临时分支
git checkout dev // 切换到dev分支
git status // 查看状态,还是干净的
git stash list // 查看隐藏的工作现场
git stash apply // 恢复工作现场
git stash drop // 删除隐藏的一条工作现场记录
git stash pop // 恢复并删除
9、多人协作
git clone git-test(url) // 克隆git-test项目
git pull origin master // 拉取master分支
git push origin master // 推送master分支
git pull origin dev // 拉取失败
git branch --set-upstream dev // 解决分支冲突
git pull origin dev // 拉取成功 然后手动处理冲突
git push origin dev // 推送dev分支