git常用命令与操作

参考:https://www.cnblogs.com/wupeiqi/p/7295372.html

设置账号

commit之前要先设置账号

git config --global user.email '[email protected]'
git config --global user.name 'xxx'

git常用命令

git init                          初始化,表示即将对当前文件夹进行版本控制。
git status                        查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。

git add <文件>                     将指定文件添加到版本库的暂存状态。
git add .                         将全部文件添加到版本库的暂存状态。
git checkout <文件>                从暂存状态拿回工作区
git commit -m '提交信息'           将暂存区的文件提交到版本库的分支。
git commit -a -m '提交信息'        ====> 相当于两条命令: 1 git add .   2 git commit -m '提交信息'

git log                            查看提交记录,即:历史版本记录
git reflog                         查看版本历史(更详细)

git reset --hard <版本号>           回到某一个版本

git stash和git branch

方式一 git stash

git stash             将工作区(红色的文件)的文件暂存都"某个神奇的地方"
git stash pop         将"某个神奇的地方"的第一个记录拿到当前工作区
    1 自动合并
    2 出现冲突(需要手动解决冲突)
    
git stash list                 查看'某个神奇的地方'存储的所有记录
git stash clear                清空'某个神奇的地方'
git stash apply <编号>          将指定编号的记录拿回工作区
git stash drop <编号>           将指定编号的记录从工作区删除

方式二 git branch

注意:千万不要在master分支上做开发

git branch <分支名>            【在当前分支上】创建分支
git checkout <分支名>        切换分支
git branch -d <分支名>        删除分支
git merge <分支名>            将分支合并到当前分支
    会产生一条合并记录
    可能会产生冲突(如果两个分支都修改了同一条记录)
git branch                    查看分支

合并分支时的三种情况?

1 【直接合并】主分支有的功能, 子分支都有, 并且子分支开发了新功能
2 【会产生一条合并记录】主分支有的【部分】功能, 子分支没有, 并且子分支开发了新功能
3 【会产生冲突,需要自己手动去处理冲突】主分支和子分支修改了同一条代码

本地与云端的交互

代码托管的网站: github Bitbucket 码云
自己创建代码托管的网站: gitlab

1 git remote add origin https://github.com/....            将远程仓库添加个别名        # origin就是后面仓库地址的别名
2 git push -u origin master                                把master推到origin远程仓库
3 git clone <仓库地址>                                      下载仓库代码
4 git pull origin dev                                      把分支dev拉取到本地(注意:先自己在本地建个分支dev)

git fetch origin dev         将远程分支拉倒本地版本库
git merge origin/dev         将本地origin/dev合并到工作区        ===>  上面两条命令相当于:  git pull origin dev

git rebase origin/dev        (==> 相当于git merge origin/dev, 但这是去看合并历史不会出现分叉)        # 保持提交记录的整洁

git之多人协同开发

1 允许他人操作程序
  - 合作者 (仓库-->setting-->collaborators)
  - 创建组织 (new organization)

2 分支
  - master
  - dev
    - sch
    - xdb

3 协同开发规则
  一起合并
  合并时间:(一般1-2天)小功能开发好了合并一次

  问题: git push origin dev 可能会报错
  解决办法:先 git pull origin dev 拉取代码

4 做代码review
  - 组长
  - 带你的人

  创建review分支

给别人代码贡献力量

问题: 怎么在github上给别人代码添加功能?

1 fork
2 添加完功能
3 pull request

其他

1 不用反复输入用户名密码

方式一: https

git remote add origin https://用户名:密码@github.com/......

方式二: ssh

1 先在本地电脑生成公钥私钥: ssh-keygen.ext
2 把公钥到github上设置
3 通过[email protected]:...下载仓库代码

2 创建忽略文件

1 项目目录下: vim .gitignore

# Byte-compiled / optimized / DLL files

# pycharm
.idea/
.DS_Store
offline-script/
media/
 
# database migrations
*/migrations/*.py
!*/migrations/__init__.py
 
 
__pycache__/
*.py[cod]
*$py.class
 
# Django stuff:
*.log
local_settings.py
*.sqlite3
 
 
# C extensions
*.so
 
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
 
# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
 
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
 
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
 
# Translations
*.mo
*.pot
 
 
# Flask stuff:
instance/
.webassets-cache
 
# Scrapy stuff:
.scrapy
 
# Sphinx documentation
docs/_build/
 
# PyBuilder
target/
 
# Jupyter Notebook
.ipynb_checkpoints
 
# IPython
profile_default/
ipython_config.py
 
# pyenv
.python-version
 
# celery beat schedule file
celerybeat-schedule
 
# SageMath parsed files
*.sage.py
 
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
 
# Spyder project settings
.spyderproject
.spyproject
 
# Rope project settings
.ropeproject
 
# mkdocs documentation
/site
 
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
.gitignore

2 可以在创建github仓库时选上

3 版本

git tag -a v1.0 -m '版本介绍'        本地创建Tag
git show v1.0                        查看
git tags -n                          查看本地Tag
git tag -l 'v1.4.2.*'                查看本地Tag,模糊匹配
git tag -d v1.0                      删除Tag
git push origin :refs/tags/v0.2      更新远程tag
git checkout v.10                    切换tag
git fetch origin tag V1.2

git push origin  --tags
git pull origin  --tags

git clone -b v0.1

猜你喜欢

转载自www.cnblogs.com/sunch/p/10409379.html