Git
----本地倉庫----
1.新建一個“本地倉庫”
- git init
2.配置倉庫
①告訴git你是誰
- git config user.name syl
②告訴git怎么聯系你
- git config user.email syl@qq.com
上面一種配置方式是一次性的配置, 會配置到被管理文件的。git文件夾下
下面一種配置方式是一勞永逸的方式:
- git config --global user.name syl
- git config --global user.email syl@qq.com
3、如何學習git指令
<1>、git常規指令
- git status 查看文件狀態
- git add . 添加文件到“暫存區”
- git commit -m "注釋" 文件名稱 添加文件到”本地倉庫“
注意:
<2>、如果沒有在commit后面加上 -m說明修改了什么, 會自動進入vim界面, 要求我們輸入修改信息
- 按鍵盤上的 i 代表開始輸入內容
- 輸入完畢之后按 esc 然后按 :wq
所以: 如果以后在終端中提交最好在后面加上-m
<3>、注意:
- git中的add和SVN中的add不太一樣, SVN中只需要add一次, 而git中每次新建或者修改之后都需要重新add
①紅色 代表在”工作區“
- 為添加之前的顏色
②綠色 代碼在”暫存區“
- 添加到暫存區之后的顏色
<4>、注意:
git默認沒有簡寫指令
注意:
一般情況下不建議自定義簡寫指令
- git中的簡寫稱之為起別名
別名 & 日志
- $ git config alias.st status
- $ git config alias.ci "commit -m"
<5>、查看log
- git log 文件名
注意:
GIt中的版本號是一個”40位“的哈希值,- 而SVN中的版本號是一個遞增的整數
配置帶顏色的log別名
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"
①已經提交的版本
-
git reset —hard HEAD^ 返回上一個版本
- 其中—hard代表強制重置
-
git reset —hard 版本號(只需要寫前7位)
②未提交
- git checkout 文件名 回退到上一次提交的版本
- git reset —hard HEAD 回退到上一次提交的版,
注意HEAD后面沒有尖號^
c9ad690 HEAD@{0}: commit: main.c
7026f99 HEAD@{1}: commit: 輸出結果
e950c89 HEAD@{2}: commit: 新增輸入
c7bf91c HEAD@{3}: commit: 添加變量
cbd9e52 HEAD@{4}: commit: 刪除print函數
45ea44d HEAD@{5}: commit: 添加了printf函數
0da06d8 HEAD@{6}: commit (initial): i
<6>、git reflog 查看所有修改信息(所有版本)
<7>、查看文件被修改的什么地方
- git diff 文件名
- 如果顯示綠色代表新增
- 如果顯示紅色代表刪除
----遠程倉庫----
- SVN需要一個單獨的服務器
- Git不需要: 文件中、U盤中、雲上、github、OSChina...
1.新建git遠程倉庫
- git init —bare
注意:
這個倉庫僅僅是用於管理代碼, 不參與開發
2.項目經理初始化項目
2.1先克隆一份空得倉庫到本地
- git clone /Users/apple/Desktop/working/公司遠程倉庫
2.2忽略不需要加入版本控制器的文件以及文件夾
- .gitignore
注意:
配置忽略文件只需要到github上搜索.gitignore拷貝別人寫好的代碼即可- 配置.gitignore一定要在和.git隱藏文件夾同一級的目錄下
2.3生成好.gitignore文件之后, 還需要將.gitignore文件添加到版本控制
- git add .gitignore
- git commit .gitignore -m””
2.4新建項目
- source conrol—>commit 將代碼提交到本地倉庫
-
source conrol—>push 將代碼提交到遠程倉庫
-
git中默認就會創建一個分支, 這個分支叫做origin/master, 相當於svn中的trunk
-
專業人員只需要在git倉庫的hooks文件夾中寫一些指令, 就可以完成自動測試(壓力測試、自動測試、集成測試、冒煙測試、。。。)
-
和SVN一樣, 如果服務器倉庫的代碼被修改了, 我們再提交代碼也會報錯。
- fetch first == out of data
總結:
git和svn最大的區別
- 1.git每次修改新增都需要add
- 2.git每台電腦都有一個倉庫
- 3.git是先提交到本地倉庫, 再提交到遠程倉庫
----gitHub----
通過Xcode將代碼提交到github上, 把倉庫放在github上
1.注冊一個github賬號
2.配置SSH Keys, 只要配置了SSH
Keys就可以和github無縫銜接
- 點擊昵稱來到個人主頁
- 點擊主頁中的設置(setting)
- 點擊SSH Keys
- 點擊 generating SSH keys
1.檢查本地的ssh keys
- 在“用戶目錄”下 ls -al ~/.ssh
2.如果文件夾不存在需要手動創建一個
- mkdir .ssh
3.根據github的提示2生成ssh keys
- 在.ssh目錄下執行
- ssh-keygen -t rsa -C "your_email@example.com” 輸入完成之后連續按下回車, 知道出現牛逼的圖形位置
4.生成完公鑰和私鑰之后輸入
- ls -la查看是否生成成功
- id_rsa(私鑰) id_rsa.pub(公鑰)
5.根據提示3獲得公鑰
- pbcopy < ~/.ssh/id_rsa.pub
6.點擊 setting —》 ssh key —>add ssh key
- 將剛才獲取到得公鑰添加進去
7.根據github第4步提示, 驗證公鑰
- 驗證成功網頁上的灰色圓點會變成綠色
8.拷貝到公鑰之后打開github主頁
- 點擊倉庫(Repositories)
- 再點擊new來到github創建倉庫界面
9.通過github提供的地址下載一個空得倉庫到本地
- 創建一個新的項目到本地倉庫文件夾中
- 利用Xcode提交代碼到github
- 注意: 要求輸入用戶名密碼時候, 輸入的是github上顯示的昵稱而不是登錄賬號