教學來源:
為你自己學 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設定資訊都會在這個資料夾。把這個資料夾刪除,這個專案就變成跟原本一樣,沒有版本控制。
6
在 Commit 的時候,如果沒有輸入這個訊息,Git 預設是不會讓你完成 Commit 這件事的。它最主要的目的就是告訴你自己以及其它人「這次的修改做了什麼」。以下是關於訊息的建議:
1 英文、中文都沒關係,重點是要簡單、清楚。
在 Git 裡,主要可以分成「工作目錄(Working Directory)」、「暫存區(Staging Area)」以及「儲存庫(Repository)」三個區塊
7 檢視哪行程式是誰寫的:
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
貼上這兩個指令:
git remote add origin https://github.com/
git push -u origin master
程式放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會在程式 自動增加成這樣:
表示原本這行的內容 , 跟後來修改的內容 ,要選擇哪一個?
改回正常的程式碼即可:
之後再
git add .
git rebase --continue
git push -u origin master
解決問題!
發現有這個錯誤:
error: src refspec master does not match any
要用
git push origin main
不能用
git push -u origin master
現在似乎不能用帳密的方法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
fatal: could not create work tree dir 'kivy'
https://stackoverflow.com/questions/16376035/fatal-could-not-create-work-tree-dir-kivy