標籤:代碼管理 alt 網址 nbsp linux branch tty hide 相同
window git下載: https://git-scm.com/download/
代碼管理工具作用* 防止代碼丟失,做備份* 代碼版本的管理,可以進行多個節點的備份,在多個版本 之間跳躍* 可以方便的將代碼在多人之間進行共用傳輸* 多人開發時有各種模式可以方便代碼管理什麼是gitgit是一個開源的分布式版本控制系統,可用於高效的管理大小項目。分布式和集中式: 分布式: 每個節點都儲存完成的代碼,沒有明確的中央伺服器, 節點之間項目推送下載程式碼完成代碼共用 集中式: 代碼集中管理,每次完成的代碼上傳到中央管理器,然後再統一從中央管理器下載代碼使用git特點* git可以管理各種檔案,特別是代碼項目,多在*nix系統中使用* 是分布式管理,不同於集中式,這是git和svn的核心區別* git可以更好的支援分支,方便多人協同工作* git分布式代碼更安全,有全球唯一的commit版本號碼* git是開源的系統* 使用git可以離網工作,且資料轉送速度較快
git_介紹
git的命令安裝:
linux : sudo apt-get install git
windows : msysgit.github.io
查看版本資訊:git --version
git 配置命令:
配置層級 1. 系統中所有的使用者都可使用該配置 命令 : git config --system 設定檔: /etc/gitconfig 2. 目前使用者可使用該配置 命令 : git config --global 設定檔: ~/.gitconfig 3. 當前項目可使用該配置 命令 : git config 設定檔: project/.git/config
設定配置的層級
(使用前先配置好 使用者名稱 和 郵箱)
配置的內容:
1. 配置使用者名稱
e.g. 配置使用者名稱為Tedu
sudo git config --system user.name Tedu
2. 配置使用者郵箱
e.g. 配置郵箱
git config --global user.email [email protected]
3. 配置編譯器
e.g. 配置編譯器
git config core.editor sublime
4. 查看配置資訊
git config --list
git基本命令
初始化倉庫: git init
(在某個目錄下初始化倉庫後會自動產生.git目錄。該目錄下工作的所有文檔即可以使用git進行管理)
查看分支狀態: git status
* 預設工作分支為master,可通過建立新的分支切換
檔案提交: git add [file]
* 將檔案提交到暫存區
* 提交內容可以是一個檔案,多個檔案用個空格分開
* 如果是 * 表示所有檔案,也可以是目錄
刪除暫存區某個檔案提交記錄: git rm --cached Readme.txt
檔案同步到本地倉庫: git commit -m "some message"
* 同步時需要附加一些同步資訊 在-m後添加
* 所有對工作區的修改如果想同步到本地倉庫,都需要 add--->commit
查看commit日誌
git log
git log --pretty=oneline
一些工作區命令
查看本地檔案和工作區差異: git diff file
從本地倉庫恢複檔案: git checkout file
丟棄工作區修改: git checkout -- file
本地倉庫檔案的移動和刪除
移動檔案: git mv file dir
刪除檔案: git rm file
* 用法和mv rm命令相同。操作後直接commit即可工 作區和本地倉庫同步
版本控制命令
回到之前版本: git reset --hard HEAD^
* HEAD後的^數量決定了回到上幾個版本
git reset --hard commit_id
* 使用commit前7位即可,回到指定的版本
去往更新的版本
1. 查看所有曆史版本號碼
git reflog
2. 使用git reset 去往指定版本
* git reflog 會有所有的操作記錄,最新的操作時鐘在 最上邊
標籤管理
什麼是標籤 : 即在當前工作位置添加快照,儲存工作狀態,一般用於版本的迭代。
建立新的標籤: git tag v1.0
* 預設在最新的commit_id處打標籤
添加標籤資訊: git tag v1.0 -m "message"
指定某個commit_id打標籤: git tag v0.9 [commit_id]
查看標籤
git tag #列出當前標籤
git show v1.0 #顯示標籤具體資訊
刪除標籤
git tag -d v1.0
去往某個標籤版本
git reset --hard v0.9
臨時工作區操作
建立儲存臨時工作區
git stash
查看儲存的工作區
git stash list
應用哪個工作區
git stash apply [email protected]{1}
應用上一個工作區並且刪除
git stash pop
刪除工作區
git stash drop [email protected]{0} #刪除某一個
git stash clear #刪除所有
什麼是分支? 分支即每個人擷取原有代碼,在此基礎上建立自己的工作環境,單獨開發,不會影響其他分支的操作。開發完成後再統一合并到主線分支中。 分支的好處:安全,不影響其他人工作,自己控制進度查看當前分支 git branch * 前面有 * 號的分支表示當前正在工作的分支建立分支 git branch [branch_name]切換工作分支 git checkout [branch]建立並切換到新的分支 git checkout -b [branch_name]分支合并 將某個分支合并到當前分支 git merge [branch] * 合并過程中如果沒有衝突則直接合并後當前分支即為 乾淨的狀態 * 如果產生衝突則需要人為選擇然後在進行add commit等操作 * 在建立分支前盡量保證當前分支是乾淨點,以減少衝突的發生刪除分支 git branch -d [branch_name] 強制移除沒有合并的分支 git branch -D [branch_name]
分支操作
遠程倉庫 : 遠程主機上的倉庫。實際上git是分布式的,每一台主機的git結構都相似,只是把其他主機的git倉庫叫做遠程而已。建立共用倉庫 1. 建立檔案夾 mkdir gitrepo 2. 設定檔案夾屬主 chown tarena:tarena gitrepo 3. 將該檔案夾設定為可共用的git倉庫 cd gitrepo git init --bare fly.git 4. 設定本地倉庫屬主 chown -R tarena:tarena fly.git添加遠程倉庫git remote add origin [email protected]127.0.0.1:/home/tarena/AID1807/gitrepo/fly.git* 預設使用SSH作為傳輸手段* 必須在本地的某個git倉庫下執行才能使本地倉庫和遠程 倉庫關聯刪除遠程主機 git remote rm [origin]將本地分支推送到遠程 git push -u origin master * 在第一次向遠程倉庫推送時需要加 -u選項,以後就不 需要了從遠程倉庫擷取項目 git clone [email protected]127.0.0.1:/home/tarena/AID1807/gitrepo/fly.git從遠程倉庫拉取分支或代碼 直接拉取遠程分支和當前工作分支合并 git pull origin dev_Tom 拉取遠程分支到本地,不合并 git pull origin dev_Tom : dev_Tom 遠程分支名 本地分支名代碼退出和拉取 將本地程式碼推送到串連的遠程倉庫 git push git push --force origin (當本地版本比遠程版本舊是用本地舊版本覆蓋遠程新版本) 從遠程倉庫更新代碼 git pull git fetch (如果有新的分支拉取到本地不會和本地分支合并)
遠程倉庫
github
github是一個開源項目社區網站。擁有全球最多的開源項目。開發人員可以註冊這個網站建立自己的github倉庫。然後就可以在本地通過git像操作遠程倉庫一樣操作github倉庫。
git是github唯一指定的代碼管理工具
網址:https://github.com/
添加ssh秘鑰
1. 在本地主機產生ssh金鑰組
ssh-keygen
* 預設金鑰組存放在 ~/.ssh/ 下
* 產生過程會提示設定密碼,如果直接斷行符號則表示不設定密碼
2. 進入 ~/.ssh 目錄 複製 id_rsa.pub 公開金鑰內容
3. 登入github帳號
右上方頭像下拉式功能表--》settings --》
左側 SSH and GPG keys --》new ssh key --》填寫title,將複製內容加入key文字框 點擊add...
建立新的github倉庫
右上方 + 下拉式功能表 --》 new repository --》 填寫參考名和基本描述 ,根據情況選擇是否添加readme等內容,選擇共有還是私人 --》 點擊建立
操作github倉庫
1.git remote 串連遠程github倉庫 如果需要輸入密碼輸 入github密碼即可
2. 使用git push等操作遠程倉庫的方法操作即可
git 的使用命令__github基本操作