GIT學習筆記

筆記整理自廖雪峯老師Git教程git

建立本地版本庫

一、 建立版本庫app

`git init`

二、 把文件添加到倉庫(從工做區到暫存區)spa

`git add readme.txt`
`git add .`

三、 把文件提交到倉庫(從暫存區到當前分支)指針

`git commit -m 'commit'`

添加到遠程庫

四、 添加一個遠程庫:生成 http://xxx.gitcode

五、 要查看遠程庫的信息,用git remote,或者,用git remote -v顯示更詳細的信息orm

六、 關聯已有的本地倉庫blog

`git remote add origin xxx.git`  (origin是遠程庫的名字)

七、 把本地庫的全部內容推送到遠程庫上,把當前分支master推送到遠程排序

第一次推送master分支,加上-u參數,把本地的master分支和遠程的master分支關聯起來
`git push -u origin master` 

把本地的修改提交到遠程的master分支
`git push origin master`

若是咱們只有一個master分支,就能夠直接:
`git push`

從遠程庫拉取項目

八、 要克隆一個倉庫,首先必須知道倉庫的地址,而後使用git clone命令克隆教程

`git clone http://xxx.git`

熟練使用以上步驟就能夠愉快的使用git了,可是想要更進一步,還須要往下看:rem

工做區和暫存區

工做區就是你本地的項目文件夾,版本庫是工做區裏的.git文件。

Git的版本庫裏存了不少東西,其中最重要的就是稱爲stage(或者叫index)的暫存區,還有Git爲咱們自動建立的第一個分支master,以及指向master的一個指針叫HEAD

咱們使用git提交能夠看爲三步:
第一步是用git add把文件添加進去,實際上就是把文件修改添加到暫存區;
第二步是用git commit提交更改,實際上就是把暫存區的全部內容提交到當前分支;
第三步是用git push把本地分支中的修改提交到遠程庫
工做區和暫存區

其餘操做

九、HEAD指向的版本就是當前版本, Git容許咱們在版本的歷史之間穿梭,使用命令git reset --hard commit_id
十、穿梭前,用git log能夠查看提交歷史,以便肯定要回退到哪一個版本, 用git log --graph命令能夠看到分支合併圖
十一、要重返將來,用git reflog查看命令歷史,以便肯定要回到將來的哪一個版本

十二、git status查看版本庫狀態
1三、用git diff HEAD -- readme.txt命令能夠查看工做區和版本庫裏面最新版本的區別
1四、git checkout -- file能夠丟棄工做區的修改(用版本庫裏的版本替換工做區的版本)
1五、用命令git reset HEAD <file>能夠把暫存區的修改撤銷掉,從新放回工做區
1六、命令git rm用於刪除一個文件

1七、查看分支:git branch
1八、建立分支:git branch <name>
1九、切換分支:git checkout <name>
20、建立+切換分支:git checkout -b <name>
2一、合併某分支到當前分支:git merge <name>
2二、刪除分支:git branch -d <name>
2三、若是要丟棄一個沒有被合併過的分支,能夠經過git branch -D <name>強行刪除

2四、Git還提供了一個git stash功能,能夠把當前工做現場「儲藏」起來,等之後恢復現場後繼續工做
2五、用git stash list命令查看保存的工做區
2六、用git stash apply恢復工做現場,可是恢復後,stash內容並不刪除
2七、用git stash drop來刪除stash內容
2八、用git stash pop,恢復的同時把stash內容也刪了

2九、本地新建的分支若是不推送到遠程,對其餘人就是不可見的,
30、從本地推送分支,使用git push origin branch-name,若是推送失敗,先用git pull抓取遠程的新提交
3一、在本地建立和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致
3二、創建本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name
3三、從遠程抓取分支,使用git pull,若是有衝突,要先處理衝突

3四、git rebase操做能夠把本地未push的分叉提交歷史整理成直線;
3五、git rebase的目的是使得咱們在查看歷史提交的變化時更容易,由於分叉的提交須要三方對比

3六、命令git tag <tagname>用於新建一個標籤,默認爲HEAD,也能夠指定一個commit id
3七、命令git tag -a <tagname> -m "blablabla..."能夠指定標籤信息
3八、命令git tag能夠查看全部標籤,標籤不是按時間順序列出,而是按字母排序的
3九、能夠用git show <tagname>查看標籤信息,能夠看到說明文字
40、命令git push origin <tagname>能夠推送一個本地標籤;
4一、命令git push origin --tags能夠推送所有未推送過的本地標籤;
4二、命令git tag -d <tagname>能夠刪除一個本地標籤;
4三、命令git push origin :refs/tags/<tagname>能夠刪除一個遠程標籤。

4四、忽略某些文件時,須要編寫.gitignore;
4五、.gitignore文件自己要放到版本庫裏,而且能夠對.gitignore作版本管理!
4六、被忽略的文件,能夠用-f強制添加到Git
4七、能夠用git check-ignore命令檢查.gitignore哪一個規則寫錯了

配置別名

4八、配置別名:git config --global alias.st status,--global參數是全局參數,也就是這些命令在這臺電腦的全部Git倉庫下都有用

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"

4九、每一個倉庫的Git配置文件都放在.git/config文件中,能夠手動修改配置,別名就在[alias]後面,要刪除別名,直接把對應的行刪掉便可,而當前用戶的Git配置文件放在用戶主目錄下的一個隱藏文件.gitconfig中

git命令總結

遠程拉取版本庫

git clone http://xxx.git
cd xxx

建立新版本庫

git init
git remote add origin http://xxx.git

提交更新

git add .    //git rm xxx
git commit -m "Initial commit"
git push //-u origin master
相關文章
相關標籤/搜索