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就够用了。