iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 19
0

教學來源:
為你自己學 Git

整理:

1 Android專案位置-->C:\Users\使用者\AndroidStudioProjects

2 crtl+s-->搜尋Git bash
指令:

which git
/mingw64/bin/git
git –version
git version 2.19.1.windows.1

3 Git帳號設定檔目錄:專案下的.git資料夾有個config檔案,裡面有帳號資訊。

4 Git 專案帳號設定(先移到該目錄,使用命令提示自元(cmd),不是git bash)
git config --local user.name name
git config --local user.email email

5

git init #初始化這個目錄,讓 Git 對這個目錄開始進行版控

專案裡會多一個資料夾-->.git,git設定資訊都會在這個資料夾。把這個資料夾刪除,這個專案就變成跟原本一樣,沒有版本控制。
https://ithelp.ithome.com.tw/upload/images/20190929/20111994p7H1kjrF3z.png

6

在 Commit 的時候,如果沒有輸入這個訊息,Git 預設是不會讓你完成 Commit 這件事的。它最主要的目的就是告訴你自己以及其它人「這次的修改做了什麼」。以下是關於訊息的建議:
1 英文、中文都沒關係,重點是要簡單、清楚。

在 Git 裡,主要可以分成「工作目錄(Working Directory)」、「暫存區(Staging Area)」以及「儲存庫(Repository)」三個區塊

7 檢視哪行程式是誰寫的:
https://ithelp.ithome.com.tw/upload/images/20190929/20111994Ejdbl9bCU8.png

GitHub步驟:
1 開啟cmd,移動到專案目錄

2 初始化這個目錄,讓 Git 對這個目錄開始進行版控:

git init

3 設定帳號資訊:

git config --local user.name name
git config --local user.email email

4 把目錄下所有檔案放到暫存區(Staging Area)

git add .

5 把暫存區(Staging Area)的所有檔案放到儲存庫(Repository)

git commit -m "commit註解,寫什麼都可以"

6
貼上這兩個指令:
https://ithelp.ithome.com.tw/upload/images/20190929/20111994nwfiDVU7Fs.png

git remote add origin https://github.com/
git push -u origin master

7

程式放github發生了這樣的錯誤:
https://gitbook.tw/chapters/github/fail-to-push.html
所以如果你電腦裡的版本比github上的版本舊。就會有這個錯誤
因為之前在github上直接更改README.md的內容,導致電腦裡的版本比github上的版本舊。
解答:

git push -u -f origin master

上一次的版本的東西就會全部消失,換成這次的。

不過這方法不太好,所以還是練習別的方法:
通常這個錯誤,常用的情境 就是兩個人用同一個github專案(不確定對不對)
1 乙 從github上 下載 甲的程式
1 甲 完成程式 傳到 github
3 乙 上傳到github 就有這個錯誤

錯誤解決方式:

git init
git add .
git commit -m "commit註解30"
git remote add origin https://github.com/ted5student/testgit.git
git push -u origin master

然後就這個錯誤:

To https://github.com/ted5student/testgit.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/ted5student/testgit.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

接著

git pull origin master --rebase

然後錯誤:

First, rewinding head to replay your work on top of it...
Applying: commit註解30
Using index info to reconstruct a base tree...
M       app/src/main/java/com/example/imageshow/MainActivity.java
Falling back to patching base and 3-way merge...
Auto-merging app/src/main/java/com/example/imageshow/MainActivity.java
CONFLICT (content): Merge conflict in app/src/main/java/com/example/imageshow/MainActivity.java
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch' to see the failed patch
Patch failed at 0001 commit註解30

Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".

參考:合併發生衝突了,怎麼辦?
git: updates were rejected because the remote contains work that you do not have locally

git會在程式 自動增加成這樣:
表示原本這行的內容 , 跟後來修改的內容 ,要選擇哪一個?
https://ithelp.ithome.com.tw/upload/images/20200622/20111994Iu28xG5uZO.png

改回正常的程式碼即可:
https://ithelp.ithome.com.tw/upload/images/20200622/20111994YydTUEfA9A.png

之後再

git add .
git rebase --continue
git push -u origin master

解決問題!

8

發現有這個錯誤:

error: src refspec master does not match any

要用

git push origin main

不能用

git push -u origin master

9

現在似乎不能用帳密的方法push了,可以用這個方法:
Creating a personal access token
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

有了token 以後,使用這個指令:
(把token123換成你的token)

git remote set-url origin https://token123@github.com/tedtedted/testProject.git

接著檢查有沒有更新:

git remote -v 

之後在

git branch -M main
git push -u origin main

10

fatal: could not create work tree dir 'kivy'
https://stackoverflow.com/questions/16376035/fatal-could-not-create-work-tree-dir-kivy


上一篇
Android,grid view、camera
下一篇
Android, GridView , ViewPager, Image Slider ,API29問題
系列文
練習程式37
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言