Git的簡單使用

GIT的一些總結

git初始

  • 添加一個遠程的repository(這個託管網絡的rep建立就不在這裏一一贅述了)
    git remote add git@github.com:用戶名/遠程的rep名.git

從遠程倉庫clone一個本地庫

git clone git@github.com:用戶名/遠程rep名.git就會從遠程庫clone一個工程到本地目錄下。git

分支變更管理

  • git diff HEAD -- 文件名能夠查看工做區裏面的文件與版本庫中有什麼區別
  • git log查看一下咱們全部的更改信息。
  • git reset --hard 在log中找到的你想回退的變更回退到固定版本
  • git reflog其中記錄了你git全部的操做,這樣子你就能夠找到全部版本,你就能夠經過上一條命令跳到全部你trak過的變更。
  • git checkout -- 文件名這個是讓你工做區裏面的文件與庫文件保持一致,變相捨棄了本地你全部的更改。
  • git reset HEAD 文件名撤銷當前暫存區的修改,工做區修改不變。

提交變更文件到遠程庫

git push -u origin master將master(本地)提交到origin(遠程)上去。github

遠程庫的管理

  • git remote -v查看遠程庫的信息
  • 在多人協做開發的時候git push以前必定要git pull拿到別人的變更,若有衝突解決。再提交。
  • git checkout -b 分支名 origin(遠程主分支名,對應的是你本地master分支)/分支名本地建立和遠端同樣的分支
  • 創建本地遠程之間的分支關聯git branch --set-upstream branch-name origin/branch-name;

分支的管理

  • 分支的管理git branch查看當前的分支狀態; git checkout -b 分支名建立一個分支;git checkout 分支名轉換分支;
  • git pull本地與遠程文件統一(遠程 --> 本地)若是你本地落後遠程,必須用pull。若是你本地超前遠程,必須用push。
  • 分支提交衝突git status查看衝突的狀態,手動解決衝突。再次提交變更。
  • 帶參數的git-log
    git log --graph --pretty=oneline --abbrev-commit
  • 快速合併分支
    git merge 分支名將該分支合併到當前的分支上去。
  • 禁用快速合併
    git merge --no-ff -m"你的自定義註釋" 分支名這個好處就是能夠自定義一個分支合併的註釋出來,方便後期的維護更新。
  • Bug分支的使用
    git stash保持當前工做場景。主要針對那些未提交的更改。
    git stash list能夠查看當時的工做現場
    git stash apply恢復工做現場,stash內容並不刪除,若是想刪除須要git stash drop來刪除
    git stash pop恢復工做現場後,把stash內容也刪除了。
    git checkout -- 文件名撤銷修改。

版本管理

  • 由於commit id是一串字符串不是很友好,咱們就引入了tag版本做爲關聯,git tag v1.0 commitID給當前命名爲commitID的分支添加一個版本號
  • git tag -a <tagname> -m "註釋信息"指定標籤信息。

添加忽略文件的教程

  • 建立一個.gitignore文件,將你想忽略的文件格式放入這個文件中。這裏有個實例文件參考:
建議從github官網搜索.gitignore根據語言的不一樣去下載不一樣的忽略文件。
  • 首先要利用git rm --cached filename先將已經track在git中的文件從索引端移除掉。
  • 而後再將.gitignore文件提交git。
  • 打完收工。

配置別名

  • 經常由於git中的一些命令行太長很差記而煩惱,git config --global alias.別名 你要替換的命令
  • 一個比較好玩的配置: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"服務器

  • --global針對當前用戶,不加只對當前倉庫起做用。
  • 這些別動都在.git/config文件中能夠找到。若是要刪除別名,直接刪除文件中對應行就能夠了。網絡

搭建Git服務器

能夠參考大神的教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000app

  • 生成SSH加解密文件
設置Git的user name和email:
$ git config --global user.name "名字"
$ git config --global user.email "郵箱名字"
1.查看是否已經有了ssh密鑰:cd ~/.ssh
若是沒有密鑰則不會有此文件夾,有則備份刪除
2.生存密鑰:
$ ssh-keygen -t rsa -C 「郵箱名字」
按3個回車,密碼爲空。
3.配置git SSH訪問
$ ssh git@192.168.x.x 登錄遠程服務器
$ ssh mkdir .ssh 建立.ssh文件夾
$ touch authorized_keys 建立公鑰匙列表文件
而後將本地生成的id_rsa.pub文件裏面的內容拷入authorized_keys文件中,一行一個Key
$ git clone git@192.168.x.x:/home/git 具體地址本身按要求填寫
打完收工..
  • 服務端配置git倉庫
git init --bare xxx.git   //建立空git倉庫
chmod -R 777 xxx.git //更改文件夾權限

錯誤信息彙總(持續更新)

  • Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.
    ssh

    解決方法:

    1.首先git remote -v查看一下咱們的遠程庫地址是否出錯。
    2.git remote set-url origin 你的遠程庫地址origin是我在遠程庫中起的名字
    3.替換後成功。url

相關文章
相關標籤/搜索