git 常用命令
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分支
ps:欢迎指出问题或补充。。
相关推荐
baolen 2020-08-15
炼金术士lee 2020-08-15
huangchunxia 2020-08-07
lljhi0 2020-07-21
huangchunxia 2020-07-08
zhangxing 2020-07-05
ArkShen 2020-07-05
nebulali 2020-07-05
formula 2020-11-12
huhongfei 2020-11-05
乾坤一碼農 2020-10-27
liumengyanysu 2020-10-22
E哥的aws认证攻略 2020-10-15
guying 2020-10-05
好脑筋不如烂笔头 2020-09-17
Equation 2020-08-09
Balmunc 2020-08-02