Git系统学习笔记

一、相关网站
  1. git官网
  2. GitLab官网

二、Git文件的三种状态
  1. 已修改(modified)
  2. 已暂存(staged)
  3. 已提交(commited)
  4. 工作区(开发) --> 暂存区( add ) --> 版本库(commit)

三、Git基本命令
  1. git init 初始化。生成.git文件夹和里面一系列文件。
  2. git add text.txt(添加文件到暂存区)
  3. git rm --cached text.txt(将文件回退到工作区)
  4. git commit -m 'init message' 提交修改的文件到版本库
    git commit --amend -m '修正提交信息'
    git commit -am '添加并提交'
  5. git checkout -- text.txt 将版本库的内容覆盖到当前文件
  6. git status 查看当前状态
  7. git rm text.txt 删除文件,将删除文件纳入到暂存区。

四、user.name 和 user.email(三个地方可以配置)
  1. 系统的(几乎不用), git config --system user.name 'lfw'
  2. 全局的, git config --global user.name 'lfw'
  3. 针对特定项目, git config --local user.name 'lfw'
  4. cat ~/.gitconfig 查看配置
  5. git commit --amend --reset-author 重新配置用户信息
五、.gitignore文件

4767717-4ec2509de63d80be.png
忽略文件.png
六、分支
  1. 查看分支 :git branch 或者 git branch -a 或者 git branch -av

  2. 创建新的分支 :git branch v_new_branch

  3. 切换分支: git checkout v_new_branch

  4. 创建并切换分支:git checkout -b test(分支名称)

  5. 切换到某次提交:git checkout 5a7cf(提交的Logid)

  6. 根据某次提交的Log Id创建一个新的分支:git branch fixbug(分支名称) 5a7cf(提交的Logid)

  7. 修改分支名称:git branch -m master master2(名称由master 改成 master2)

  8. 推送新的分支:
    git push --set-upstream origin dev (dev:dev2)
    git push -u origin test
    一样的效果
    git push origin HEAD:dev2
    git push origin dev:dev2

  9. 拉取远程分支:
    git checkout -b dev origin/dev
    git checkout --track origin/dev

  10. 删除本地分支:git branch -d dev

  11. 删除远程分支:
    git push origin :dev(将本地空的分支推送到远程分支)
    git push origin --delete dev

  12. 克隆远程分支:git clone 远程仓库地址 文件夹

  13. 合并某分支到当前分支:git merge <name>

4767717-448633fac891c78b.png
checkout.png

git checkout -- 文件 :工作区的内容,回到最后一次add到暂存区的内容。
git reset HEAD test.txt :移除一次add。

七、临时保存(stash)
  1. git stash save '分支修改Bug,临时保存工作内容'
  2. git stash pop 恢复最后一个临时保存工作内容。
  3. git stash list 查看临时保存列表。
  4. git stash apply stash@{1} ,回复到列表中的指定位置。
  5. git stash drop stash@{0} ,删除一条临时保存。


    4767717-162707adbea0013a.png
    stash.png
八、Git标签
  1. git tag v1.0.0 简单的打个标签
  2. git tag -a v1.0.5 -m '带消息的' 带注释信息的打标签
  3. git tag 查看标签列表
  4. git tag -l 'v*' 查找tag
  5. git tag -d v1.0.0 删除本地tag
    git push origin :refs/tags/v1.0
    git push origin --delete tag v1.0
  6. git push origin v1.0 v2.0 (将标签推送到远程)
  7. git push origin --tags(推送所有标签到远程)


    4767717-ed34a9c89790d9ce.png
    Git标签.png
九、Diff 和文件删除
  1. git blame test.txt (查看这个文件修改信息)


    4767717-7971fef87e8c35ac.png
    diff.png
  2. rm -rf .git(删除文件夹下的内容包括文件夹)
  3. rm -rf * 删除当前目录下的所有文件
十、关联远程仓库(常用)
  1. 创建本地git:git init
  2. 添加到暂存区: git add .
  3. 提交到本地仓库: git commit -m '准备关联远程仓库'
  4. 去创建远程项目,并得到远程项目的地址
  5. 本地添加远程仓库: git remote add origin 远程仓库的项目地址
  6. 如果是SSH,就配置一下SSH:git remote show origin
  7. 关联本地仓库: git push -u origin master
  8. 输入帐户和密码,搞定。
SSH配置
  1. git remote show 显示远程仓库名称
  2. git remote show origin(远程仓库名称),显示详情信息
  3. SSH生成配置
      1. which ssh-keygen
      1. ssh-keygen(回车、回车就行)
      1. 复制id_rsa.pub复制到远程仓库
分支开发模型
4767717-d5902fe3f5ee8cef.png
分支开发模型.png

设置别名: git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'

多模块开发一:submodule
  1. 添加submodule:git submodule add [email protected]:wenkency/git_child.git libxxx
  2. 更新远程:git submodule foreach git pull
  3. 克隆一:
    git clone http://xxx parent
    git submodule init
    git submodule update --recursive
  4. 克隆二:
    git clone http://xxx git_parent --recursive
    5.删除submodule
    git rm --cached libxxx
    rm -rf libxxx
    git add .
    git commit
多模块开发二:subtree
  1. 关联:git remote add subtree-origin http://xxx
  2. 添加: git subtree add --prefix=subtree(目录) subree-origin master --squash
  3. 更新:git subtree pull --prefix=subtree subtree-origin master --squash
  4. 推送:git subtree push --prefix=subtree subtree-origin master

--squash(合并提交信息) ,生成提交新的ID。--squash要么都用,要么都不用

转载于:https://www.jianshu.com/p/7f2d6ea56553

猜你喜欢

转载自blog.csdn.net/weixin_34273481/article/details/91280335