Git学习笔记


git学习笔记


一,基本设置

  1. 初始化设置
git config --global user.name "Your Name"  
git config --global user.email "email@example.com"  

--global参数,表示你这台机器上所有的Git仓库都会使用这个配置。

  1. 创建版本库repository
    通过git init命令把当前目录变成Git可以管理的仓库。

二,常用命令

  1. 把文件添加到仓库 git add readme.txt
    强制添加git add -f readme.txt
  2. 把文件提交到仓库git commit -m "description"
    -m后面输入的是本次提交的说明
  3. 显示从最近到最远的提交日志 git log
    使用--pretty=oneline参数可简化为一行
  4. 上一个版本就是HEAD^ 上上一个版本就是HEAD^^ 或写成HEAD~10
  5. 回退到上一个版本 git reset --hard HEAD^
    回退到任意版本git reset --hard <commit id前几位>
  6. 查看命令记录 git reflog
  7. 查看状态git status
  8. 查看工作区和版本库里面最新版本的区别 git diff HEAD -- readme.txt
  9. 丢弃工作区的修改 git checkout -- file
  10. 切换到另一个分支 git checkout master
  11. 把暂存区的修改撤销掉 git reset HEAD <file>
  12. 删除文件 git rm test.txt
  13. 创建dev分支 git checkout -b dev 相当于git branch devgit checkout dev
    也可以用 git switch -c dev
  14. 查看当前分支 git branch
  15. 合并指定分支到当前分支 git merge dev
    --no-ff参数,表示禁用Fast forward合并模式(看不出来曾经做过合并)
  16. 删除dev分支 git branch -d dev
    强行删除 git branch -D dev
  17. 查看分支合并图 git log --graph
    或者git log --graph --pretty=oneline --abbrev-commit
  18. 存储当前当前工作现场 git stash
    之后用git stash list命令查看
    恢复方法一 git stash pop 恢复的同时把stash内容也删了
    恢复方法二 git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
  19. 复制一个特定的提交到当前分支 git cherry-pick 4c805e2
  20. 分叉的提交现在变成一条直线 git rebase

三,远程仓库

  1. 创建SSH Key ssh-keygen -t rsa -C "youremail@example.com"
  2. 在远程仓库Add SSH Key中添加id_rsa.pub文件的内容
  3. 本地关联远程库 git remote add origin git@github.com:username/filename.git
    远程库的名字就是origin,这是Git默认的叫法,这个名字一看就知道是远程库。
  4. 把本地库的内容推送到远程,用git push origin master命令,实际上是把当前分支master推送到远程。
    第一次推送master分支时,加上了-u参数
  5. 克隆一个本地库 git clone git@github.com:username/filename.git
  6. 查看远程库的信息 git remote
    显示更详细的信息 git remote -v
  7. 你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,用这个命令创建本地dev分支: git checkout -b dev origin/dev
  8. 推送的提交有冲突的解决办法: 先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送
    若git pull 失败,用第9条的命令创建链接关系,之后再git pull
  9. 设置dev和origin/dev的链接 git branch --set-upstream-to=origin/dev dev
  10. 删除已有的远程库 git remote rm origin

四,标签管理

  1. 默认标签打在最新提交的commit上 git tag v1.0
  2. 查看所有标签 git tag
  3. 找到历史提交的commit id git log --pretty=oneline --abbrev-commit
  4. 给对应的commit id打标签 git tag v0.9 f52c633
  5. 查看标签信息 git show <tagname>
  6. 创建带有说明的标签,用-a指定标签名,-m指定说明文字
    git tag -a v0.1 -m "version 0.1 released" 1094adb
  7. 删除标签 git tag -d v0.1
  8. 推送某个标签到远程 git push origin v1.0
  9. 一次性推送全部尚未推送到远程的本地标签 git push origin --tags
  10. 删除远程标签:先从本地删除 git tag -d v0.9
    之后从远程删除git push origin :refs/tags/v0.9

五,其他命令

  1. 让Git显示颜色 git config --global color.ui true
  2. 忽略特殊文件
在Git工作区的根目录下创建一个特殊的.gitignore文件,
然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
忽略文件的原则是:
1.忽略操作系统自动生成的文件,比如缩略图等;
2.忽略编译生成的中间文件、可执行文件等,
   也就是如果一个文件是通过另一个文件自动生成的,
   那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
3.忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
例如:
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build
# My configurations:
db.ini
deploy_key_rsa
  1. 检查.gitignore规则 git check-ignore -v App.class
  2. 配置别名 例如以st表示status git config --global alias.st status
    其他 git config --global alias.co checkout
    git config --global alias.ci commit
    git config --global alias.br branch
    git config --global alias.unstage 'reset HEAD'
    把暂存区的修改撤销掉
    git config --global alias.last 'log -1'
    显示最后一次提交信息
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

六,搭建Git服务器(Ubuntu或Debian)

  1. 安装git sudo apt-get install git
  2. 创建一个git用户,用来运行git服务 sudo adduser git
  3. 创建证书登录 所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
  4. 初始化Git仓库
    在/srv目录下输入命令 sudo git init –bare sample.git
    然后,把owner改为git sudo chown -R git:git sample.git
  5. 禁用shell登录
编辑/etc/passwd文件
将 git:x:1001:1001:,,,:/home/git:/bin/bash
改为 git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
  1. 克隆远程仓库 git clone git@server:/srv/sample.git

七,使用SourceTree


文章作者: DaIQiFenG
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-SA 4.0 许可协议。转载请注明来源 DaIQiFenG !
评论
  目录