git用法

1.git安裝:git

 

2.建立版本庫github

  2.1 建立一個目錄sql

  2.2 在該目錄下git init建立倉庫shell

3.添加/修改並提交內容緩存

   git add xxruby

   git commit -m "comment"bash

3.查看命令服務器

   git statusssh

    git diff xxui

    git log (查看版本變化)

    若是log太多,則用git log --pretty=online

 

4.版本回退

  HEAD表示當前版本,^表示HEAD前一個版本,有兩種方式回退版本:

 git reset --hard HEAD ^ (回退到當前版本以前的版本)

 git reset --hard CommitID

  git reflog查看命令歷史

5. 概念

   工做區:目錄

   版本庫:工做區裏的隱藏目錄.git包含:stage或者index的暫存區;master分支;指向master的一個指針HEAD。

                  git add是將內容放入stage,git commit是將stage的數據提交到倉庫中。

   工做區、暫存區、倉庫。add把工做區的變動同步到暫存區,commit把暫存區的變動同步到倉庫。

    git reset HEAD file:把暫存區的修改撤銷掉,從新放回工做區

總結:  git diff  -----工做區和暫存區比較

             git diff HEAD  -----工做區和分支比較

6.撤銷修改

    git checkout  -- xx (將分支上的xx同步到本地,至關於完成了撤銷修改,無論此時修改是在工做去或者緩存區)

    git reset HEAD <file> 是將暫存區裏的內容回退到分支同版本,此時工做區的內容不變,和checkout有區別。因此,reset有兩個功能:能夠回退版本,也能夠清空暫存區。

7.刪除

   git rm xx

   git commit

實戰篇:使用github管理本身的創庫

第1步:建立SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,若是有,再看看這個目錄下有沒有id_rsaid_rsa.pub這兩個文件,若是已經有了,可直接跳到下一步。若是沒有,打開Shell(Windows下打開Git Bash),建立SSH Key:$ ssh-keygen -t rsa -C "youremail@example.com"

若是一切順利的話,能夠在用戶主目錄裏找到.ssh目錄,裏面有id_rsaid_rsa.pub兩個文件,這兩個就是SSH Key的祕鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,能夠放心地告訴任何人。

  

第2步:登錄GitHub,打開「Account settings」,「SSH Keys」頁面:

而後,點「Add SSH Key」,填上任意Title,在Key文本框裏粘貼id_rsa.pub文件的內容:

第3步:關聯git創庫:git remote add origin git@github.com:simkong/LearnGit.git

            查看庫關聯: git remote -v

            刪除關聯庫: git remote rm xx

 

分支管理:

1.建立分支  git branch dev

2.切換分支 git checkout dev

                   git switch -c dev

  建立並切換分支  git checkout -b dev

3.查看分支  git branch

4.將分支merge到master: git merge dev

查看分支:git branch

建立分支:git branch <name>

切換分支:git checkout <name>或者git switch <name>

建立+切換分支:git checkout -b <name>或者git switch -c <name>

合併某分支到當前分支:git merge <name>

刪除分支:git branch -d <name>

5.刪除分支  git branch -d dev

6.查看log:git log --graph --pretty=oneline --abbrev-commit

7.

一般,合併分支時,若是可能,Git會用Fast forward模式,但這種模式下,刪除分支後,會丟掉分支信息。

若是要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就能夠看出分支信息。

git merge --no-ff -m "xxx" branch

 

8.強制刪除分支: 當分支沒有merge的時候刪除分支會提示失敗,若是要強制銷燬則用-D

                              git branch -D xx

9.查看遠程分區: git remote

                             git remote -v (顯示信息更全)

10.推送分支  git push origin master (dev) 將本地分支推送到服務器主分支

11. 多人協做開發公用一個dev分支的時候,須要將本地的dev分支與遠程的origin的dev分支關聯:

     git checkout -b dev origin/dev

 

=====================標籤管理===========

1.建立標籤  git tag XX

   若是想在某制定地方打標籤,則先用git log --pretty=oneline --abbrev-commit 查看log id,而後在建立tag的時候,將該ID添加上去:

    git tag XX ID

   若是給標籤打上說明,則git tag -a VER -m "comment" ID

2.查看標籤 git tag

   查看標籤信息  git show xx

3.標籤刪除:git tag -d XX

                  git show

4.推送本地標籤: git push origin tagname

   推送所有本地未推送過的標籤:git push orgin --tags

    刪除遠程標籤: 要先刪除本地標籤: git tag -d tagname

                            而後再刪除遠程標籤:git push orign :refs/tags/tagname

 

 

=============小技巧===============

1.配置顏色 : git config --global color.ui true

2.若是須要忽略某些文件好比臨時文件等,須要再工做區建立一個文件.gitignore,再該文件中添加須要過濾的文件或者文件夾

  若是須要強制添加也給.gitignore屏蔽的文件,則用git add -f xx

3.配置別名 git config --global alias.CM1 command

   這戲配置被放再.git/config裏

 

===============搭建git服務器===============

1.安裝git : sudo apt install git

2.建立git帳號: sudo adduser git

3.建立登錄證書: 將全部須要登錄的用戶的公鑰(id_rsa.pub)內容導入到/home/git/.ssh/authroized_keys文件,一行一個

4.初始化倉庫:好比/dir/xx.git,則咋/dir下面敲入命令: sudo git init --bare xx.git (沒有工做區的裸倉庫)

                      將owner改成git: sudo chown -R git:git xx.git

5.禁用ssh登錄: 修改/etc/passwd,將 git:x:1001:1001:,,,:/home/git:/bin/bash修改成git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

 

 

 

 

 

 

git log --graph --pretty=oneline --abbrev-commit
相關文章
相關標籤/搜索