一. git配置
1.设置的主要命令是 git config:
git config --global user.name "maxsu" // 设置全局用户名
git config --global user.email "yiibai.com@gmail.com" // 设置邮箱
其中, --global 指定为全局配置,不使用该参数,则为当前所在仓库配置。
2.除了用户名、邮箱之外,还有很多的配置可以用来自定义 Git,如:
git config --global color.ui true // 让 Git 显示不同的颜色
git config core.ignorecase true // 让 Git 对仓库中的文件大小写敏感
3. 查看所有的已经做出的配置:
git config -l
二.基础操作
1.创建Git 版本库
#新建目录,在目录下执行当前命令,会看到目录下多了一个.git子目录,说明创建版本库成功
git init
2. 将文件添加到暂存区
#添加单个文件到暂存区
git add Readme.md
#添加多个文件到暂存区
git add list.js index.js CsloseController.php
#将当前目录下所有修改添加到暂存区,规则忽略的之外
git add . 或者 git add --all
注意:这边空文件夹是不会被添加到暂存区中的。
3.暂存区提交到仓库
git commit -m '提交的备注信息’
4.查看仓库文件状态
git status
5. 查看仓库中文件具体修改
#查看全部文件修改
git diff
#查看指定文件修改
git diff Readme.md
6.查看提交历史记录
git log
7.版本回退
7.1暂存区到工作区
git reset 文件名 或 git reset HEAD 文件名
#省略文件名则恢复全部文件到工作区
7.2工作区回退到某个版本
#工作区未修改的区域回退指定版本
git reset --hard 版本号
#工作区已修改的区域回退指定版本
git reset --mix 版本号
#回退到上一个提交版本
git reset --hard HEAD^
#回退到上上一个提交版本
git reset --hard HEAD^^
7.3丢弃工作区代码
git checkout 文件名
#丢弃工作区全部代码
git checkout .
7.4撤销当前提交回退至暂存区
git reset --sort 版本号
三.分支管理
1.查看分支
#查看本地分支信息
git branch
#查看相对详细的本地分支信息
git branch -v
# 查看远程分支
git branch -r
#查看本地+远程分支信息
git branch -a
2.创建分支
git branch dev
3. 切换分支
git checkout dev
4. 创建并切换分支
git checkout -b dev
5. 合并分支
#当前分支master,合并dev到master
git merge dev
6.删除分支
git branch -d dev
#强制删除本地分支
git branch -D guok
#删除远程分支
git push origin --delete 分支名
四.暂存文件
#暂时存储修改的文件,不包括add的文件
git stash
#恢复最近一次保存并且把stash内容删除
git stash pop
# 恢复最近一次保存的临时修改,不删除
git stash apply
#恢复第二个保存的文件
git stash apply stash@{1}
#删除存储的内容
git stash drop
#删除指定,num从0开始
git stash drop stash@{$num}
#显示所有临时修改
git stash list
#删除所有暂存
git stash clear
五.远程仓库
1.从远程克隆
#shh
git clone ssh://user@domain.com/repo.git
#http
git clone http://domain.com/user/repo.git
2.拉取远程分支到本地
2.1本地有其他分支
2.1.1 查看远程分支
git branch -r
2.1.2 有2种方法来拉取远程分支代码
#本地与远程建立映射
git checkout -b 本地分支xxx origin/远程分支xxx
#不需要建立映射
git fetch origin 远程分支xxx:本地分支xxx
git fetch origin trunk #拉取远程trunk分支到本地trunk
2.1.3 关联本地分支和远程分支
git branch --set-upstream-to=origin/<branch> 本地分支
2.2 本地没有其他分支代码
git clone -b 分支名 仓库地址
3.拉取代码
git pull <远程主机名> <远程分支名>:<本地分支名>
#如本地分支和远程相同,可省略本地分支名
git pull origin xinyuandan #省略了本地分支名
#仅仅拉取远程,不做合并
git fetch origin master
git pull=git fetch + git merge
4.推送远程 本地分支省略则默认远程和本地一致
git pull <远程主机名> <远程分支名>:<本地分支名>
#推送本地master到远程next分支
git pull origin next:master
六.修改commit注释
两种情况:
1.已经将代码push到远程仓库
2.还没将代码push到远程仓库,还在本地的仓库中
这两种情况下的修改大体相同,只是第一种情况最后会多一步
修改最后一次注释
如果你只想修改最后一次注释(就是最新的一次提交),那好办:
git commit --amend
出现有注释的界面(你的注释应该显示在第一行), 输入i进入修改模式,修改好注释后,按Esc键 退出编辑模式,输入:wq保存并退出。ok,修改完成。
修改之前的注释
修改之前的某次注释
1.输入:
git rebase -i HEAD~2
最后的数字2指的是显示到倒数第几次 比如这个输入的2就会显示倒数的两次注释(最上面两行)
2.你想修改哪条注释 就把哪条注释前面的pick换成edit。方法就是上面说的编辑方式:i---编辑,把pick换成edit---Esc---:wq.
3.然后:(接下来的步骤Terminal会提示)
git commit --amend
4.修改注释,保存并退出后,输入:
git rebase --continue
其实这个原理我的理解就是先版本回退到你想修改的某次版本,然后修改当前的commit注释,然后再回到本地最新的版本
修改之前的某几次注释
修改多次的注释其实步骤和上面的一样,不同点在于:
1.同上
2.你可以将多个想修改的commit注释前面的pick换成edit
3.依次修改你的注释(顺序是从旧到新),Terminal基本都会提示你接下来的操作,每修改一个注释都要重复上面的3和4步,直到修改完你所选择的所有注释
已经将代码push到远程仓库
首先,你把最新的版本从远程仓库先pull下来,修改的方法都如上,最后修改完成后,强制push到远程仓库:
git push --force origin master
注:很重要的一点是,你最好保证在你强制push之前没有人提交代码,如果在你push之前有人提交了新的代码到远程仓库,然后你又强制push,那么会被你的强制更新覆盖!!!
最后,可以检查一下远程的提交记录