-
1 创建版本库并配置git全局属性
由于git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识
$ git init
$ git config --global user.name "user_name"
$ git config --global user.email "user_email"
--global表示全局属性,所有的git项目都会共有属性
成功后会在windows 的C盘用户目录下生成一个.gitconfig文件,如若不用global则只在当前项目生效。另外配置完global的属性后,若是在当前项目中新添加一个用户和邮箱,则优先使用新的属性
-
2 提交仓库
$ git add + 文件 # 将文件存于暂存区
$ git commit # 将git内的暂存区文件全部提交成一个版本
$ git commit -m "备注信息"
$ git status # 查看git内代码提交情况
-
3 查看git的提交日志
$ git log 或者 $ git log + 文件名 # 查看git提交日志
$ git log --pretty=online文件名 # 简易信息查看
-
4 版本回退
$ git reset --hard HEAD^ # 回退到上一次提交历史
$ git reset --hard HEAD~n # 回退n次操作,回退有hard/mix/soft
-
5 版本穿越
# 行查看历史记录的版本号,执行git reflog文件名
$ git reset --hard + 版本号
-
6 版本还原
$ git checkout + 文件名
-
11 创建分支
$ git branch <分支名>
$ git branch -v # 查看分支
-
12 切换分支
$ git checkout <分支名>
一步完成
$ git checkout -b <分支名>
-
13 合并分支
先切换到主干
$ git checkout master
再合并分支
$ git merge <分支名>
-
14 删除分支
先切换到主干
$ git checkout master
再删除分支
$ git branch -D <分支名>
删除远程服务器分支
$ git push origin --delete <分支名>
-
15 提交代码到分支
$ git add .
$ git commit -m ""
$ git push -u origin <分支名>
-
16 git 撤销操作所有
$ git checkout -- a.txt # 丢弃某个文件
$ git checkout -- . # 丢弃全部
注意:git checkout -. 丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。对之前保存在暂存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。当然,如果之前压根都没有暂存或commit,那就是回到上次pull下来的样子
-
17 git push 出现 The current branch dev has no upstream branch.的问题
出现原因,远程仓库不存在相应的分支,需要建立本地与分支的关系
$ git push origin detection_xj_0.2 -u
这个意思是把本地dev push到origin的dev -u表示同时建立关联,以后再推送到远程只需git push origin
-
18 当git出现(master|MERGING)问题
首先抛弃当前head,回退版本信息,之后再pull
$ git reset --hard head
-
19 远程仓库不存在分支,而本地仓库显示存在时
$ git remote prune origin
该命令解释:削减不存在于远程仓库的本地分支
-
20 本地仓库出现UTF编码仓库 <U+0096>,并且常规方法无法删除
使用常规方法删除出现pathspec 'summary_process' did not match any file(s) known to git
解决方法:
由于是UTF 96编码方式的仓库,字符96的UTF编码是0xC296,故此只需要在仓库名称前面加上x96即可
$ git branch -D $'\x96summary_process'