1、创建本地仓库的两种途径:
从远程仓库克隆一份:
git clone [remote git url]创建一个目录:
mkdir git, 然后用git init去初始化这个目录,使之成为一个git仓库。
2、git config文件配置:
- 配置全局用户名:
git config --global user.name "xxxxxx" - 配置全局E-mail:
git config --global user.email "[email protected]", 如果需要在项目中配置不同的用户名和邮件,则只需要在项目目录下执行上面的命令,不带--global即可。 - 查看配置文件:
git config --list
3、将本地仓库和远程仓库关联(适用于git init创建的仓库):
- 添加远程仓库:
git remote add [host-name] [git-url], 一般host-name取origin, 这也是git默认主机名。 - 拉取本地还没有的远程仓库的信息:
git fetch [host-name] [branch-name],从远程仓库下载制定分支的信息到本地,但不会与本地的仓库合并,需手动合并git merge [host-name] [branch-name],如:git fetch origin dev; git merge origin dev; - 拉取远程信息,并尝试与本地合并(相当于fetch和merge的合体):
git pull [host-name] [branch-name], 有冲突需手动解决再手动合并。 - 查看远程仓库信息:
git remote -v。
4、将本地信息推送到远程
git push [host] [branch],如果远程没有对应分支,则需要带上-u参数创建相应分支。- 如果本地分支没有与远程分支关联,则需要:
git branch --set-upstream [remote-branch]建立关联。 - 如果远程分支有其他人提交过,则必须先
git pull,尝试与本地合并合并(有冲突解决冲突)后才可以push。
5、添加文件,修改,提交修改
- 添加文件到暂存区:
git add [file-name or directory-name],可以使用通配符。 - 所有做的修改都需要使用
git add后在进行git commit操作。 - 提交修改到本地仓库:
git commit -m '说明信息'。 - 撤销修改/恢复删除文件:
git check --[file-name],注意两个’-‘。 - 查看git状态:
git status。 - 查看commit日志:
git log,单行显示:git log --pretty=oneline。 - 查看上次的修改:
git diff file-name。 - 从暂存区删除一个文件:
git rm file-name。
6、创建、切换分支
- 创建并切换分支:
git checkout -b [branch-name],他相当于git branch [branch-name]; git checkout [branch-name];。 - 切换分支:
git checkout [branch-name]。 - 删除分支:
git branch -d <name>,使用-D强行删除。 - 查看分支合并情况:
git log --graph --pretty=oneline --abbrev-commit
7、版本回退
- 本地仓库回退:
git reset --hard HEAD^,一个^表示回退一个版本,两个^^表示回退两个版本,一次类推,回退100个版本可以这样写HEAD~100,也可以指定回退到具体某个版本git reset --hard 1094adb。 - 重返未来:使用
git reflog查看操作历史,找到要回去的版本号,使用1中命令即可回到未来。
8、保存工作现场
git stash,保存工作现场后,working dir就是干净的,这时就可以创建别的分支,进行别的工作,比如紧急修复bug场景。PS:如果当前工作区不干净git不允许创建新的分支。- 恢复工作区:
git stash pop,它相当于git stash apply; git stash drop;,恢复并删除stash内容。
9、清理工作空间
git checkout .,丢弃该目录下所有未提交的修改。git clean -df [path],丢弃当前目录/path目录下所有未track的文件或目录,当使用-n时,仅仅提示会删除哪些文件,不会操作.gitignore里指定的文件,-x可以忽略.gitignore定义。git reset --hard,它一般和git clean -df搭配使用,可以让目录回到最近一次commit的状态,又可以愉快开始新的工作了。
10、标签管理
- commit打标签:
$ git tag v0.9 [-m '说明文字'] f52c633,可以省略commit号,默认打在最新commit上。 - 使用
git show tag-name查看说明文字。 - 使用
git tag查看所有标签。 - 使用
git tag -d v0.1删除标签。 - 将标签推送到远程:
git push origin <tagname>,使用git push origin --tags推送全部tag。 - 使用
git push origin :refs/tags/<tagname>可以删除一个远程标签,需要先删除本地对应标签。