##? 【git?命令:】
##?安裝Git
#?Linux?:
#*?Debian/Ubuntu?:
```
*$?apt-get?install?libcurl4-gnutls-dev?libexpat1-dev?gettext\libz-dev?libssl-dev
*$?apt-get?install?git-core
*$?git?--version
*git?version?1.8.1.2
```
#*?Centos/RedHat?:
```
*$?yum?install?curl-devel?expat-devel?gettext-devel?\openssl-devel?zlib-devel
*$?yum?-y?install?git-core
*$?git?--version
*git?version?1.7.1
```
#?Windows?:?推薦使用git?for?windows,它包括了圖形工具以及命令行模擬器牛欢。
##?用ssh-keygen命令生成一組新的id_rsa_new和id_rsa_new.pub
#?ssh-keygen?-t?rsa?-C?"new?email"
##?配置Git
#?設置用戶名骡男、郵箱
```
*$?git?config?--global?user.name?"My?Name"
*$?git?config?--global?user.email?myEmail@example.com
```
#?查看已有的配置信息:?$?git?config?--list
#?查看用戶名和郵箱地址:
```
*$?git?config?user.name
*$?git?config?user.email
```
##?創(chuàng)建新倉庫:$?git?init
#?git?會把所有文件以及歷史記錄保存在你的項目中,創(chuàng)建一個新的倉庫傍睹,首先要去到項目路徑隔盛,執(zhí)行?git?init。然后git會創(chuàng)建一個隱藏的文件夾#?.git焰望,所有的信息都儲存在其中骚亿。如果你沒有看到.git目錄,那是因為這個目錄默認是隱藏的熊赖,用ls?-ah命令就可以看見
```
*$?git?init
*$?git?init?newrepo
*$?git?add?*.c
*$?git?add?README
*$?git?commit?-m?'初始化項目版本'
```
*以上命令將目錄下以?.c?結尾及?README?文件提交到倉庫中来屠、或者$?git?add?-A提交所有文件。
##?檢查狀態(tài):?$?git?status
*$?git?status?是另一個非常重要的命令,它會告訴我們倉庫的當前狀態(tài):是否為最新代碼俱笛,有什么更新等等執(zhí)行git?status:
##?暫存:?$?git?add
*git?有個概念叫?暫存區(qū),包裹著所有你可能會提交的變動捆姜。它一開始為空,你可以通過?git?add?命令添加內容迎膜,并使用?git?commit?提交泥技。
```
*$?git?add?*.c?//?將目錄下以?.c后綴文件提交到暫存區(qū)
*$?git?add?-A?//?提交所有文件提交到暫存區(qū)
```
##?提交:?$?git?commit
*一次提交代表著我們的倉庫到了一個交付狀態(tài),通常是完成了某一塊小功能磕仅。它就像是一個快照珊豹,允許我們像使用時光機一樣回到舊時光。
```
*$?git?commit?-m?"Initial?commit."
*-m?“Initial?commit.”表示對這次提交的描述榕订,建議使用有意義的描述性信息店茶。
```
##?遠程倉庫:$?git?remote?add
#?1:鏈接遠程倉庫
*為了能夠上傳到遠端倉庫,我們需要先建立起鏈接,
*例:
```
*$?git?remote?add?origin?git@github.com:dfce/react-stack-learn.git
```
#?2:上傳到服務器:?$?git?push
*git?push命令會有兩個參數劫恒,遠端倉庫的名字贩幻,以及分支的名字:
```
*$?git?push?origin?master
```
#?3:?克隆倉庫:?$?git?clone
```
*$?git?clone?git@github.com:dfce/react-stack-learn.git
```
#?4:?從服務器拉取文件:?$?git?pull
```
*$?git?pull?origin?master
```
##?分支
#?1:創(chuàng)建分支:?$?git?branch
```
*$?git?branch?amazing_new_feature
```
#?2:切換分支:?$?git?checkout
```
*$?git?branch?//?單獨使用?git?branch?可以查看分支狀態(tài)
*$?git?checkout?amazing_new_feature
```
#?3:合并分支:?$?git?merge
```
*$?git?merge?amazing_new_feature
```
##?$?git?log?每次提交都有一個唯一id,查看所有提交和他們的id两嘴,可以使用?git?log:
##?$?git?show?commitid?查看某一次提交【commintid】更新了什么
##?$?git?diff?查看兩次提交的不同丛楚,可以使用git?diff?[commit-from]..[commit-to]
*比較首次提交和最后一次提交,我們可以看到所有的更改憔辫。當然使用git?difftool命令更加方便趣些。
##?回滾:?$?git?checkout
*下面的例子,我們將hello.txt回滾到最初的狀態(tài)螺垢,需要指定回滾到哪個提交喧务,以及文件的全路徑。
```
*$?git?checkout?09bd8cc1?hello.txt
```
##?回滾提交:?如果你發(fā)現最新的一次提交完了加某個文件枉圃,你可以通過?git?commit?—amend來修復,它會把最新的提交打回暫存區(qū)庐冯,并嘗試重新提交孽亲。
#?如果是更復雜的情況,比如不是最新的提交了展父。那你可以使用git?revert返劲。
#*?最新的一次提交別名也叫HEAD。
```
*$?git?revert?HEAD
```
#*?其他提交可以使用id:
```
*$?git?revert?b10cc123
```