git入門的問題 - Linux

Table of Contents

※ 引述《justintime (All is well~)》之銘言:
: 小弟是git的新手
: 很多觀念都還模模糊糊
: 所以還不太敢實作

其實你可以試試看啊...備份不難吧


: 想請問一下
: 如果我server上有個 A.c 檔
: 我clone下來後修改了這個 A.c 檔
: 之後 add commit merge回server時
: 1.merge時是否會有衝突發生?




: 2.衝突的定義是指相同檔名內容不同嗎?

當然


: 3.如果有的話我該把舊的內容改成跟新的 A.c 檔一樣嗎?
: 4.但如果 A.c 檔裡有5,6千行我該怎麼改?

首先當你想上傳 server 時其實通常是用 push 而不是 merge
是從 server 拉回本地時才用 fetch + merge (合起來就叫 pull)

當 push 時, server 會比對 server 上的 repo 和正被 push 上來的 repo
如果兩者可以直接差別更新, 那就會自動把 push 上來的 repo 中, 不存在於 server
裡的 commits 直接附加到 server 的 repo 中
例如...

remote

A -- B -- C <- mster
\
-- D <- some_branch


local

A -- B -- C -- E <- master


那 git push remote master 之後 remote 就會變成

remote

A -- B -- C -- E <- master
\
-- D <- some_branch


這叫做 fast forward merge

當 git 無法完成 fast forward merge 時, 才會告訴你需要手動 resolve
這時候它會在訊息中顯示所有需要 resolve 的檔案
而在那些檔案中, 會用特定格式標示出 conflict 的發生位置
所以即使你的原碼很長, 也不太容易找不到要改哪裡


: 非常謝謝各位回答!!

大概是這樣吧
其實網路上現在都有不少教學了
自己建立一個 repo, 加上 GitHub 的 remote 玩一玩就會熟了
而且 git 為了安全起見, 無法從 local 端修改 remote 端的任何資料(只能附加)
所以其實無論如何你都沒辦法把已經 push 上去的資料搞爆的, 這個可以放心XD


--
╱ ̄ ̄ ̄╲
◢█◣
成龍表示: 是喔...
′/ ‵
╰╯
ψQSWEET █◤

--

All Comments