Git-Use
git use
1. 安装git
Linux: sudo apt-get install git
2. 创建版本库
- git init
- git add . or git add filename
- git commit -m “some comments”
- git push
3. 文件头信息和管理
常用到的查看信息命令:
git status git log git diff filename
3.1 版本回退
    git log    #查看全部的信息
    git log --pretty=oneline  #单独一行显示一种信息
    git reset --hard HEAD^ #回退到上一个版本之中
    git reset --hard version_num #回退到指定版本号中,此处的回退已经屏蔽掉了在这个版本之后的所有信息。可使用 git log 查看到
    git reflog #可以查看到历史记录中的版本变更情况,同时使用 git reset --hard version_num 可以恢复到任何想去的版本当中
3.2 管理与修改
在git commit中只有把修改提交到暂存区之后,才能被正式提交,否则即便修改过,也不会被提交。每次修改,如果不add到暂存区,那就不会加入到commit中。
3.3 撤销与修改
    git checkout -- filename #丢弃工作区的内容
    git reset HEAD filename #把暂存区的内容回退后在丢弃工作区的即可。
    git checkout -- * #丢弃所有内容
3.4 删除文件
直接在工作区中删除:
    rm filename
在暂存区中删除:
    git rm filename
误删除,还原:
    git checkout -- filename  #git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
备注:如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
4. 远程仓库
4.1 创建远程仓库ssh:
    https://help.github.com/articles/generating-ssh-keys
4.2 添加远程仓库:
    git remote add origin xxxxx
4.3 clone
    git clone xxxxx
5. 分支管理
5.1 创建与合并分支
    git checkout -b new_branch #创建并切换到new_branch
    git branch #查看所有分支情况
    git branch new_branch #创建分支
    git checkout new_branch #切换到分支
    git merge new_branch #合并分支
    git branch -d new_branch #删除分支
    git branch -D new_branch #删除未合并的分支
5.2 分支策略
在分支管理中,master分支属于最稳定的分支,一般是对外正式分布的分支.新建一个dev分支,开发人员在dev分支中进行开发,并不断合并到dev分支。
5.3 冲突解决
    git fetch origin #拉取远程分支内容,不合并
    git merge origin/master or origin.dev #合并分支
    git pull #拉取并做没冲突的合并,有冲突的会提示出来
5.4 bug 分支
    git stash #保存现场,当前的改动, 可迭代使用
    git stash list #显示当前的stash
    git stash pop #回复当前的stash, 并删除对应的stash内容
    git stash apply stash@{stash_num} #应用当前的stash
    git stash drop stash@{stash_num}  #丢弃stash
5.5 多人协作
    git remote #查看远程库
    git remote -v #查看远程库的详细信息
    git push origin master #推送本地master分支
    git push origin dev    #推送呗地dev   分支
备注:
- master分支是主分支,因此要时刻与远程同步;
- dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
抓取分支和分支冲突解决:
    git clone xxxxxxxxx
    git branch #查看抓取到的分支,默认情况下仅有master
    git checkout -b dev origin/dev #在本地创建dev分支,同时在本地dev分支和远程的origin/dev分支关联
    git branch --set-upstream dev origin/dev #将远程的origin/dev 和本地的dev分支关联
    git pull, git push orgin dev #冲突解决和推送
多人协作的工作模式通常是这样:
- 首先,可以试图用git push origin branch-name推送自己的修改;
- 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
- 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
6. 标签
暂时用不到!!
7. 自定义git
自定义问加 .gitignore
    #这个是注释,下面列举了常见的文件忽略方式:
    *.py[cod] #正则匹配pyc, pyd, pyo。
    *.so
    FileFolder #整个文件夹
配置别名:
    git config --global alias.co checkout
    git config --global alias.ci commit
    git config --global alias.br branch
搭建git 服务器:
暂时有github就够用了。