Git操作命令和GitHub使用
阿新 • • 發佈:2018-11-13
過程 ssh key 環境 公鑰 多個 設置 創建文件夾 管理 基礎上
git 代碼協同管理工具
代碼管理工具作用
* 防止代碼丟失,做備份
* 代碼版本的管理,可以進行多個節點的備份,在多個版本 之間跳躍
* 可以方便的將代碼在多人之間進行共享傳輸
* 多人開發時有各種模式可以方便代碼管理
什麽是git
git是一個開源的分布式版本控制系統,可用於高效的管理大小項目。
分布式和集中式
分布式: 每個節點都保存完成的代碼,沒有明確的中央服 務器,節點之間項目推送下載代碼完成代碼共享
集中式: 代碼集中管理,每次完成的代碼上傳到中央管理 器,然後再統一從中央管理器下載代碼使用
git特點
* git可以管理各種文件,特別是代碼項目,多在*nix系統中使用
* 是分布式管理,不同於集中式,這是git和svn的核心區別
* git可以更好的支持分支,方便多人協同工作
* git分布式代碼更安全,有全球唯一的commit版本號
* git是開源的系統
* 使用git可以脫網工作,且數據傳輸速度較快
git安裝
linux :
sudo apt-get install git
windows : msysgit.github.io
git 配置命令
git config 配置級別 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 stash@{1}
應用上一個工作區並且刪除
git stash pop
刪除工作區
git stash drop stash@{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]:/home/tarena/AID1807/gitrepo/fly.git
* 默認使用SSH作為傳輸手段
* 必須在本地的某個git倉庫下執行才能使本地倉庫和遠程 倉庫關聯
刪除遠程主機
git remote rm [origin]
將本地分支推送到遠程
git push -u origin master
* 在第一次向遠程倉庫推送時需要加 -u選項,以後就不 需要了
從遠程倉庫獲取項目
git clone [email protected]:/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使用