git經常使用命令與操做

參考:https://www.cnblogs.com/wupeiqi/p/7295372.htmlhtml

 

設置帳號

commit以前要先設置帳號

git config --global user.email 'xx@xxx.com'
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分支上作開發python

git branch <分支名>            【在當前分支上】建立分支
git checkout <分支名>        切換分支
git branch -d <分支名>        刪除分支
git merge <分支名>            將分支合併到當前分支
    會產生一條合併記錄
    可能會產生衝突(若是兩個分支都修改了同一條記錄)
git branch                    查看分支

合併分支時的三種狀況?git

1 【直接合並】主分支有的功能, 子分支都有, 而且子分支開發了新功能
2 【會產生一條合併記錄】主分支有的【部分】功能, 子分支沒有, 而且子分支開發了新功能
3 【會產生衝突,須要本身手動去處理衝突】主分支和子分支修改了同一條代碼

本地與雲端的交互

代碼託管的網站: github Bitbucket 碼雲
本身建立代碼託管的網站: gitlabgithub

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 拉取代碼

  建立review分支web

給別人代碼貢獻力量

問題: 怎麼在github上給別人代碼添加功能?sql

1 fork
2 添加完功能
3 pull requestjson

其餘

1 不用反覆輸入用戶名密碼

方式一: httpsvim

git remote add origin https://用戶名:密碼@github.com/......app

方式二: sshssh

1 先在本地電腦生成公鑰私鑰: ssh-keygen.ext
2 把公鑰到github上設置
3 經過git@github.com:...下載倉庫代碼

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
相關文章
相關標籤/搜索