代码版本控制系统Git

1、创建本地仓库的两种途径:

  1. 从远程仓库克隆一份:git clone [remote git url]

  2. 创建一个目录:mkdir git, 然后用 git init 去初始化这个目录,使之成为一个git仓库。

2、git config文件配置:

  1. 配置全局用户名:git config --global user.name "xxxxxx"
  2. 配置全局E-mail:git config --global user.email "[email protected]", 如果需要在项目中配置不同的用户名和邮件,则只需要在项目目录下执行上面的命令,不带 --global 即可。
  3. 查看配置文件: git config --list

3、将本地仓库和远程仓库关联(适用于git init创建的仓库):

  1. 添加远程仓库:git remote add [host-name] [git-url], 一般host-name取origin, 这也是git默认主机名。
  2. 拉取本地还没有的远程仓库的信息:git fetch [host-name] [branch-name],从远程仓库下载制定分支的信息到本地,但不会与本地的仓库合并,需手动合并git merge [host-name] [branch-name],如:git fetch origin dev; git merge origin dev;
  3. 拉取远程信息,并尝试与本地合并(相当于fetch和merge的合体):git pull [host-name] [branch-name], 有冲突需手动解决再手动合并。
  4. 查看远程仓库信息:git remote -v

4、将本地信息推送到远程

  1. git push [host] [branch],如果远程没有对应分支,则需要带上 -u 参数创建相应分支。
  2. 如果本地分支没有与远程分支关联,则需要:git branch --set-upstream [remote-branch]建立关联。
  3. 如果远程分支有其他人提交过,则必须先git pull,尝试与本地合并合并(有冲突解决冲突)后才可以push。

5、添加文件,修改,提交修改

  1. 添加文件到暂存区:git add [file-name or directory-name],可以使用通配符。
  2. 所有做的修改都需要使用git add后在进行git commit操作。
  3. 提交修改到本地仓库:git commit -m '说明信息'
  4. 撤销修改/恢复删除文件:git check --[file-name],注意两个’-‘。
  5. 查看git状态:git status
  6. 查看commit日志:git log,单行显示:git log --pretty=oneline
  7. 查看上次的修改:git diff file-name
  8. 从暂存区删除一个文件:git rm file-name

6、创建、切换分支

  1. 创建并切换分支:git checkout -b [branch-name],他相当于git branch [branch-name]; git checkout [branch-name];
  2. 切换分支:git checkout [branch-name]
  3. 删除分支:git branch -d <name>,使用-D强行删除。
  4. 查看分支合并情况:git log --graph --pretty=oneline --abbrev-commit

7、版本回退

  1. 本地仓库回退:git reset --hard HEAD^,一个^表示回退一个版本,两个^^表示回退两个版本,一次类推,回退100个版本可以这样写HEAD~100,也可以指定回退到具体某个版本git reset --hard 1094adb
  2. 重返未来:使用git reflog查看操作历史,找到要回去的版本号,使用1中命令即可回到未来。

8、保存工作现场

  1. git stash,保存工作现场后,working dir就是干净的,这时就可以创建别的分支,进行别的工作,比如紧急修复bug场景。PS:如果当前工作区不干净git不允许创建新的分支。
  2. 恢复工作区:git stash pop,它相当于git stash apply; git stash drop;,恢复并删除stash内容。

9、清理工作空间

  1. git checkout . ,丢弃该目录下所有未提交的修改。
  2. git clean -df [path],丢弃当前目录/path目录下所有未track的文件或目录,当使用-n时,仅仅提示会删除哪些文件,不会操作.gitignore里指定的文件,-x可以忽略.gitignore定义。
  3. git reset --hard,它一般和git clean -df搭配使用,可以让目录回到最近一次commit的状态,又可以愉快开始新的工作了。

10、标签管理

  1. commit打标签:$ git tag v0.9 [-m '说明文字'] f52c633,可以省略commit号,默认打在最新commit上。
  2. 使用git show tag-name查看说明文字。
  3. 使用git tag查看所有标签。
  4. 使用git tag -d v0.1删除标签。
  5. 将标签推送到远程:git push origin <tagname>,使用git push origin --tags推送全部tag。
  6. 使用git push origin :refs/tags/<tagname>可以删除一个远程标签,需要先删除本地对应标签。
文章作者: Jack.Charles
文章链接: https://blog.zjee.me/2018/11/29/learn-git/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 江影不沉浮