使用Git版本控制工具管理GitHu Git是一個分步式的管理系統:只要上傳操作得當,所有的都可以相當於是中央伺服器,成員代碼共用,A寫的代碼B也有,一般把一個人當做主機,其他人通過該主機拼裝代碼並克隆到自己的電腦上; 這樣即使是主機涼了,其他人也都會有各自的本地代碼,都不會涼; Svn是一個集中式 ...
使用Git版本控制工具管理GitHu
-
Git是一個分步式的管理系統:只要上傳操作得當,所有的都可以相當於是中央伺服器,成員代碼共用,A寫的代碼B也有,一般把一個人當做主機,其他人通過該主機拼裝代碼並克隆到自己的電腦上;
這樣即使是主機涼了,其他人也都會有各自的本地代碼,都不會涼;
-
Svn是一個集中式的管理系統:所有人將各自的模塊代碼上傳到中央伺服器中進行拼裝,當伺服器涼了所有沒有本地代碼的人就都涼了;
一.配置Git
-
下一步下一步,註意可以設置為notepad修改;
-
安裝完成後,先去電腦中查看是否有SSH秘鑰,這個秘鑰擁有互聯網唯一性
-
進入C:\User\lyuweigh\.ssh中查看,有沒有"id_rsa",和"id_rsa_pub"
-
如果沒有,則需要創建秘鑰:
ssh-keygen -t rsa -C "[email protected]","[email protected]"
-
然後在輸入:
//文件保存在本地.git/config中 $ git config --global user.name "Your Name" $ git config --global user.email "[email protected]"
-
二.設置GitHub
- 創建一個賬號,進入設置
- 然後選擇New SSH Key 將本地User/lyuweigh/.ssh/id_rsa_pub 內容複製進去,加一個標題 保存
- 然後在git中就可以進行pull 和 push 操作了
三.基本操作命令
-
提交被修改過的文件的方法到.git倉庫
git add xxxx.xxx //提交指定文件 git add.//提交所有文件
-
光提交是不行的,還需要對這次 提交|修改 進行說明
git commit -m 'xxxxxxx' // -m 後面輸入的是提醒備註的文本,最好詳細
-
查看倉庫狀態命令
git status //如果有的文件提交到本地倉庫,則會顯示為紅色,如果沒有對提交的文件進行簽名,會顯示為綠色 //如果顯示為紅色,自行提交, 如果顯示為綠色,對操作進行簽名
-
版本回退
-
使用git log 命令進行查看提交的版本迭代信息
git log //如果輸出的信息太多,加上--pretty=oneline ,會將顯示信息減少,增加可讀性
-
使用回退代碼
//根據每次commit代碼時的簽名來指定git本地倉庫回退到的具體版本 git reset --hard^ //這裡的'^'符號代表跳過的次數,出現一次就是跳回到上一個版本
當從v3.0退回到v2.0的時候,原來版本的代碼還在,只是使用git log是無法顯示出v3.0的簽名的
使用 git reflog
1 git reflog 2 //用來顯示歷史所有成功執行的命令每一次的命令 3 4 //以下是顯示代碼, 第一條是最近的代碼,我回退了版本1, 剩下的是提交過的簽名 5 6 $ git reflog 7 ed3bf60 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^ 8 2afd461 (origin/master, origin/HEAD) HEAD@{1}: commit: 免罪目錄 9 ed3bf60 (HEAD -> master) HEAD@{2}: commit: add xmind uml 10 451af7b HEAD@{3}: commit: 修改了 11 b9188e0 HEAD@{4}: commit: 修改簽名 12 9f9d110 HEAD@{5}: clone: from https://github.com/lyuweigh/First.git 13 //既然知道了上衣次版本號'免罪目錄'的hash值是 "2afd461", 那麼就可以通過版本回退命令來修改版本 14 git reset 2afd461 15 //這裡的 "哈希值" 可以簡略寫, 只寫前面幾個
git的版本控制是指針設計方式
-
四.Git原理
最外圍的區域是工作區
.git 文件夾中有暫存區 (Stage)和主分支區(Header)
-
java Git add xxx 命令將文件提交到stage(暫存區)中;
-
Git commit -m xxx 命令將文件提交到 Header(主分支)中
-
不管是訪問他人內容 , 還是自己的內容被訪問, 所請求的資源都是Header中的資源
五.撤回工作區的修改:
git checkout -- file
//file是想要被改回的文件名
//丟棄工作區的修改, 回到當前版本庫的狀態
- 撤回暫存區的修改
git reset hard <file>
//file是想要被改回的文件名
//丟棄暫存區的修改
-
只要沒有提交到遠程庫中,那就是可以修改的, 就算提交到了遠程庫中,大不了pull下載改一下在push上去,因為有 版本庫 指針的存在 所以非特殊情況不會造成代碼丟失
-
刪除文件
-
刪除噹噹前版本庫中的內容:
git rm <file> //由於是屬於修改了當前工作區的文件,操作樹就不為空了,需要手動提交該操作的簽名 git commit -m '刪除了xxxx'
-
六.分支區(Header)
每一個本地庫都是一個分支(.git),將代碼先commit到自己的當前分支上,隨時都可以添加,並且速度快(本地傳輸),
敲一天代碼,這一天內可以隨意的將代碼添加到本地分支中,並且有版本庫的存在不用擔心提交;
本地代碼弄好後,將本地分支代碼提交到遠程倉庫中,(為了防止衝突問題,要先將伺服器中的代碼pull(拉回)到本
分支上,再將本分支push(推出)到遠程伺服器中)
觀自廖雪峰