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:欢迎指出问题或补充。。

相关推荐