之前使用sourceTree感觉挺顺手的,后来电脑重装了系统又得重拾命令行,下面是我整理的一些常用的命令。
初始化Git仓储/(仓库)
- 这个仓库会存放,git对我们项目代码进行备份的文件
- 在项目目录右键打开 git bash
- 命令:
git init
自报家门
- 就是在git中设置当前使用的用户是谁
- 每一次备份都会把当前备份者的信息存储起来
- 命令:
- 配置用户名:
git config --global user.name "xiaoming"
- 配置邮箱:
git config --global user.email "xm@sina.com"
- 配置用户名:
把代码存储到.git仓储中
- 1.把代码放到仓储的门口
git add ./readme.md
所指定的文件放到大门口git add ./
把所有的修改的文件添加到大门口
- 2.把仓储门口的代码放到里面的房间中去
git commit -m "这是对这次添加的东西的说明"
可以一次性把我们修改的代码放到房间里(版本库)
git commit --all -m "一些说明"
- –all 表示是把所有修改的文件提交到版本库
查看当前的状态
- 可以用来查看当前代码有没有被放到仓储中去
- 命令:
git status
git中的忽略文件
- .gitignore,在这个文件中可以设置要被忽略的文件或者目录。
- 被忽略的文件不会被提交仓储里去.
- 在.gitignore中可以书写要被忽略的文件的路径,以/开头,
一行写一个路径,这些路径所对应的文件都会被忽略,
不会被提交到仓储中
- 写法
/.idea
会忽略.idea文件/js
会忽略js目录里的所有文件/js/*.js
会忽略js目录下所有js文件
- 写法
查看日志
git log
查看历史提交的日志git log --oneline
可以看到简洁版的日志
回退到指定的版本
git reset --hard Head~0
- 表示回退到上一次代码提交时的状态
git reset --hard Head~1
- 表示回退到上上次代码提交时的状态
git reset --hard [版本号]
- 可以通过版本号精确的回退到某一次提交时的状态
git reflog
- 可以看到每一次切换版本的记录:可以看到所有提交的版本号
分支
- 默认是有一个主分支master
创建分支
git branch dev
- 创建了一个dev分支
- 在刚创建时dev分支里的东西和master分支里的东西是一样的
git branch -a
- 查看远程和本地分支
git branch -d temp
- 删除本地分支temp
切换分支
git checkout dev
- 切换到指定的分支,这里的切换到名为dev的分支
git branch
可以查看当前有哪些分支
- 切换到指定的分支,这里的切换到名为dev的分支
合并分支
git merge dev
- 合并分支内容,把当前分支与指定的分支(dev),进行合并
- 当前分支指的是
git branch
命令输出的前面有*号的分支
- 合并时如果有冲突,需要手动去处理,处理后还需要再提交一次.
提交代码到github(当作git服务器来用)
git push [地址] master
- 示例:
git push https://github.com/huoqishi/test112.git master master
- 会把当前分支的内容上传到远程的master分支上
- 示例:
git pull [地址] master
- 示例:
git pull https://github.com/huoqishi/test112.git master
- 会把远程分支的数据得到:(注意本地-要初始一个仓储!)
- 首先,基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD记录与远程仓库的版本号,然后git fetch 获得当前指向的远程分支的后续版本的数据,然后再利用git merge将其与本地的当前分支合并。所以可以认为git pull是git fetch和git merge两个步骤的结合。
- 示例:
git clone [地址]
- 会得到远程仓储相同的数据,如果多次执行会覆盖本地内容。
创建本地分支
git checkout -b 本地新分支名
推送本地分支到远程仓库
git push --set-upstream origin 分支名
拉取远程仓库到本地分支
git pull origin 远程仓库名 : 本地分支名
将远程git仓库里的指定分支拉取到本地(本地不存在的分支)
git checkout -b 本地分支名 origin/远程仓库名
如果出现如下提示,表示拉取不成功。需要我们先执行
git fetch
在执行git checkout -b 本地分支名 origin/远程仓库名
Did you intend to checkout 'origin/dev2' which can not be resolved as commit?
建立本地分支与远程分支的映射关系
git branch -u origin/仓库名
或者git branch --set-upstream-to origin/仓库名
git fetch 用法
git fetch
- 创建并更新本 地远程分支。即创建并更新origin/xxx 分支,拉取代码到origin/xxx分支上。
git fetch origin dev
- 指定远程remote和FETCH_HEAD,并且只拉取该(dev)分支的提交。
git fetch origin master:tmp
- 在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git diff tmp
- 来比较本地代码与刚刚从远程下载下来的代码的区别