一、git基本配置
1. 检查配置信息
如果想要检查你的配置,可以使用git config --list
命令来列出所有 Git 当时能找到的配置,包括用户名 user.name
和邮箱 user.email
等
如果你要检查某一项配置,可以用 git config <key>
命令,比如: git config user.name
2. 用户信息
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:
$ git config --global user.name "yyy"
$ git config --global user.email "yyy@163.com"
用户信息一般在 C:\Users\Administrator\.gitconfig
文件里
若你使用 Git 时需要获取帮助,有三种方法可以找到 Git 命令的使用手册
git help <verbname>
git help remote
git help config
二、git项目命令
有两种取得 Git 项目仓库的方法。 第一种是在现有项目或目录下导入所有文件到 Git 云端中; 第二种是从一个服务器克隆下载现有的 Git 仓库。
在现有目录中初始化仓库
- 如果你打算使用 Git 来对现有的项目进行管理,你只需要进入该项目目录并输入:
$ git init
该命令将创建一个名为 .git 的子目录
- 提交项目到云端
在与.git文件同级目录下,放置所有文件
$ git add .
$ git commit -m '信息'
$ git status
$ git push
克隆现有的仓库
$ git clone <项目的地址>
$ git add .
$ git commit -m '信息'
$ git status
$ git push
三、其他常用指令
分支相关
-
查看分支
- git branch 查看本地已经存在的分支
- git branch -r 查看远程版本库分支列表
- git branch -a 查看所有分支列表,包括本地和远程(git branch -all)
-
切换分支
- git branch dev 创建名为dev的分支
-
创建并切换分支
- git branch -b dev 创建名为dev的分支(注意:添加分支最好别在master分支下添加分支,我们是在online下添加分支,则先切换到online分支,再创建新的分支)
-
删除分支
- git branch -d dev 删除dev分支,如果在分支中有一些未merge的提交,那么会删除分支失败,此时可以使用 git branch -D dev:强制删除dev分支
- git push origin --delete dev 删除远程分支
-
分支重命名
- git branch -m oldName newName 给分支重命名
-
查看本地分支对应的远程分支
- git branch -vv 查看本地分支对应的远程分支
-
查看日志
History - 查看历史git命令
Git log - 查看历史提交的commit
Git log -p - 查看历史提交的具体代码 -
本地拉取线上最新代码
git fetch + git merge
git pull origin [线上分支名]
- git pull 相当于从远程获取最新版本并直接merge到本地
- git fetch
- $ git fetch origin master //从远程的origin仓库的master分支下载代码到本地的origin master
- git merge
- 合并两个仓库
- git remote
- git remote 查看关联的远程仓库信息
- git remote add origin 添加远程仓库的关联
- git remote remove origin 删除远程仓库的关联
- git rm 删除某文件
Git 之 恢复修改的文件
对于恢复修改的文件,就是将文件从仓库中拉到本地工作区,即 仓库区 ----> 暂存区 ----> 工作区。
对于修改的文件有三种情况:
- 只是修改了文件,没有任何 git 操作
- 修改了文件,并提交到暂存区(即编辑之后,git add但没有 git commit -m …)
- 修改了文件,并提交到仓库区(即编辑之后,git add和 git commit -m …)
1.情况I:
只是修改了文件,没有任何 git 操作,直接一个命令就可回退:
$ git checkout – aaa.txt # aaa.txt为文件名
2.情况II:
修改了文件,并提交到暂存区(即编辑之后,git add但没有 git commit -m …)
git reset HEAD [文件名]
- git reset HEAD
- 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
- git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了
3.情况III:
修改了文件,并提交到仓库区(即编辑之后,gitadd和 git commit -m …)
$ git reset HEAD [commitID] # 回退到当前版本
-
git 放弃本地修改,强制拉取更新
git fetch --all
git reset --hard origin/master
git pull //可以省略 -
删除文件:
cd 到文件目录
rm - f 文件名
git rm 文件路径名 -
清除git缓存
git rm -r --cached .
git push origin [分支名] -
回滚
git reset --hard [commitID]
git push origin [分支名] -f
实际工作中遇到的
可以通过git checkout [远程分支名]
将远程分支拉取到本地,如果在哪个分支下创建分支,则先切换到这个分支,再在这个分支下git checkout -b [分支名]
每次更新线上的代码的步骤:
首先,进入你的母分支上(master或online等),git fetch一下,再切换到你的分支,进行merge,比如我在online分支下创建了fp0801分支,则,每次提交前,需要先更新下,在online分支上,git fetch,然后在fp0801上git merge origin online
或者直接在fp0801上git pull origin online
git pull == git fetch + git merge
$ git add .
$ git commit -m '信息'
$ git pull origin master
// (拉取线上版本,与本地没冲突直接push,有冲突,再add ,commit 再push)
$ git push
通常,在项目合作中,尽量不要用同一个分支,在一个问题上,创建一个主分支,大家在共同修改一个问题时,在这个主分支下创建新分支,修改完后再push到主分支上。