remote: Permission to cooderyg/nbc-movie-team.git denied to Yooonzero.
fatal: unable to access 'https://github.com/cooderyg/nbc-movie-team.git/': The requested URL returned error: 403
HTTP 403 Forbidden ํด๋ผ์ด์ธํธ ์ค๋ฅ ์ํ ์๋ต ์ฝ๋๋ ์๋ฒ์ ์์ฒญ์ด ์ ๋ฌ๋์์ง๋ง, ๊ถํ ๋๋ฌธ์ ๊ฑฐ์ ๋์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
remote: Permission to cooderyg/nbc-movie-team.git denied to Yooonzero.
fatal: unable to access 'https://github.com/cooderyg/nbc-movie-team.git/': The requested URL returned error: 403
// ํํ๋ก์ ํธ๋ฅผ ์ํด ํด๋น ๋ ํผ์งํ ๋ฆฌ์ push๋ฅผ ํด์ผ๋๋ ์ํฉ.
// ์ด๋ฏธ clone ์ ๋ฐ์์จ ์ฐ๋ฆฌ ํ์์ ๋ ํผ์งํ ๋ฆฌ์ ์ ๊ทผ๊ถํ์ด ์๋ค๋ ์ค๋ฅ๊ฐ ๋ฐ์
// ๋์ ๋ ํผ์งํ ๋ฆฌ์ push๋ฅผ ํด๋ณด์๋ ์๋์ ๊ฐ์ ์ค๋ฅ ๋ฐ์.
// ์ค๋ฅ ํด๊ฒฐ ๊ณผ์ ์ ๋ฆฌ
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Yooonzero/JS2.git/'
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Yooonzero/JS2.git/'
์์ ๊ฐ์ ์ค๋ฅ ๋๋
remote: Permission to Yooonzero/JS2.git denied to Yooonzero.
fatal: unable to access 'https://github.com/Yooonzero/JS2.git/': The requested URL returned error: 403
remote: Permission to Yooonzero/JS2.git denied to Yooonzero.
fatal: unable to access 'https://github.com/Yooonzero/JS2.git/': The requested URL returned error: 403
์ค๋ ๋ง๋ ์ค๋ฅ๋ค.
์ค๋ git push ๋ฅผ ์ํด์ ๋ด๊ฐ ์งํํ๋ ๊ณผ์ ์ ์์๋๋ก ์ ๋ฆฌํด๋ณด์.
1. ํฐ๋ฏธ๋ ์คํ ํ push ํ๊ณ ์ถ์ ํ์ผ์ด ์๋ ๊ฒฝ๋ก๋ก ์ด๋.
% cd Desktop/Toy1/JS2
// ๋ช
๋ น์ด : cd <๊ฒฝ๋ก>
// ๋ป : cd ๋ช
๋ น์ด๋ก vscode๋ฅผ ์คํํ๊ณ ์ ํ๋ ํด๋๋ก ์ด๋.
1-1. ๊ฒฝ๋ก ์ด๋์ด ์ ๋์๋์ง pwd ๋ก ํ์ธ.
% pwd
// ๋ป : ํ์ฌ ํฐ๋ฏธ๋์ด ์คํ๋๊ณ ์๋ ๊ฒฝ๋ก ํ์ธ ๋ช
๋ น์ด.
// ์ถ๋ ฅ๊ฐ : /Users/yoonzero/Desktop/Toy1/JS2
2. ์ด๋ํ ๊ฒฝ๋ก์ ํด๋์์ vscode ์คํ ํ push ํด์ฃผ๊ณ ์ถ์ ๋ด์ฉ ํ์ธ.
% code .
// ํ์ฌ ํด๋ ๋ฐ ํ์ผ์์ vscode๋ฅผ ์คํ์์ผ์ค.
// ํด๋น ๋ช
๋ น์ด๋ฅผ ํตํด ํฐ๋ฏธ๋์์ vscode๋ฅผ ์ด๊ธธ ์ํ๋ค๋ฉด, ์๋ ํญ๋ชฉ ์ค์น ํ์
// ๋จ์ถํค : vscode ์คํ ํ command + shift + p
3. git init
% git init
// ๋ป : git push ๋๋ git add ์ ๊ฐ์ git๊ณผ ๊ด๋ จ๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ ์ ์๊ฒ ํด์ฃผ๋ ๋ช
๋ น์ด
$ ls -al
// ํ์ฌ ๋๋ ํ ๋ฆฌ(ํด๋์ ๊ฐ์ ๋ป)์ ๋ชจ๋ ํ์ผ์ ๋ณด์ฌ์ค๋ค.(์จ๊นํ์ผ๋ ํฌํจ)
// git init ์ผ๋ก .git ์ด๋ผ๋ ์จ๊นํด๋๊ฐ ์ ์์ฑ๋์๋์ง ํ์ธํ๋ค.
// ์ถ๋ ฅ๊ฐ
drwxr-xr-x@ 9 yoonzero staff 288 6 7 14:11 .
drwxr-xr-x@ 6 yoonzero staff 192 6 7 14:11 ..
-rw-r--r--@ 1 yoonzero staff 6148 6 4 18:09 .DS_Store
drwxr-xr-x@ 12 yoonzero staff 384 6 7 14:16 .git // .git ํ์ธ ์๋ฃ!
drwxr-xr-x@ 2 yoonzero staff 64 6 2 21:54 assets
-rw-r--r-- 1 yoonzero staff 3620 6 7 13:58 index.html
-rw-r--r-- 1 yoonzero staff 2067 6 7 13:59 sdfsdf
drwxr-xr-x@ 5 yoonzero staff 160 6 7 14:05 src
drwxr-xr-x@ 3 yoonzero staff 96 6 2 21:54 style
4. git add .
% git add .
// git add ๋ ๋ณ๊ฒฝํ ํ์ผ์ ์ฒด์์ ๋ด๊ฐ ์ ์ฅํ๊ณ ์ถ์ ํ์ผ๋ง ๊ณจ๋ผ ์ฌ๋ฆด์ ์๋ค.
// . ์ ๋ชจ๋ ํ์ผ์ ์ ๋ถ ์ ์ฅํ๋ค๋ ๋ป์ด๋ค.
5. git commit -m "์ปค๋ฐ๋ฉ์์ง"
% git commit -m "์ด ๋ถ๋ถ์ ์์ ๋กญ๊ฒ ์์ฑ"
// git commit ์ ๋ด๊ฐ git add ๋ก ์ฌ๋ ค์ค ํ์ผ๋ง ์ ์ฅํ ์ ์๋ค.
// git add ๋ ๋ณ๊ฒฝํ ์ ์ฒด ํ์ผ์ค์์ ๋ช๋ช๊ฐ ํ์ผ๋ง ์ง์ ํด์ ์ง์ ํ ํ์ผ๋ค๋ง ์ ์ฅ์ ํด์ค์๋ ์๊ณ ,
// git commit ์ add๋ก ์ฌ๋ ค์ค ํ์ผ๋ค ์ ๋ถ๋ฅผ ์ ์ฅ ํด์ค๋ค.
// ์ ์ฅํ ํ์ผ์ ์ ํํ ์ ์๋, ์๋๊ฐ git add ์ git commit์ ์ฐจ์ด์ ์ด๋ค.
// ๋ฐ๋ผ์ add๋ก ์ ์ฅํ ํ์ผ์ ์ ํํ๊ณ commit์ผ๋ก ์ปค๋ฐ์ ์งํํ๋๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ๋ถํฐ ์ค๋ฅ ๋ฐ์
6. git push origin <pushํ ๋ธ๋์น๋ช >
% git push origin main
// window ์์๋ ๋ฐ๋ก push ๊ฐ ๋์๋ค.
// mac์์๋ ์๋์ ๊ฐ์ ๋ด์ฉ์ด ์ถ๋ ฅ๋๋ค.
Username for 'https://github.com': // config --global ์ ์ ์ฅํ user.name์ ์จ์ฃผ๊ณ
Password for 'https://yoonzero@github.com': // ์ก์ธ์ค ํ ํฐํค๊ฐ์ ๋ฃ์ด์ค์ผํ๋ค.
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Yooonzero/JS2.git/'
// ์ฒ์ ๋ง๋ ์ค๋ฅ ๊ฐ
์๋ ์ค๋ฅ๊ฐ ๋์จ ์ด์ : github ๋ก๊ทธ์ธ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ดํํด์.
์ ์ค๋ฅ ๋ด์ฉ์ ์์ฝ ํ๋ฉด 2021๋ 8์ 13์ผ ๋ถ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ์ง์ํ๋ ๋ฐฉ์์ด ๋ณ๊ฒฝ๋์์ผ๋ ํ์ธํด๋ผ.
๊ธฐ์กด ๋ฐฉ์ - > ํ ๊ธํค๋ก ๋ณ๊ฒฝ๋์๋ค๊ณ ํ๋ค.
ํ ๊ธํค ๊ด๋ จ ํด๊ฒฐ ์์
6-1. ๋ด๊ฐ ํ ๊ธํค๋ฅผ ๋ฐ์๋์ง ์๋ฐ์๋์ง, ํน์ ๊ธฐ๊ฐ์ด ๋ง๋ฃ๋์๋์ง ํ์ธํ๋ฌ git ์ฌ์ดํธ๋ก ๊ฐ๋ค.
6-2. ์ข์ธก ์ ์ผ ํ๋จ์ Developer settings ํด๋ฆญ
6-3. ์ข์ธก 3๋ฒ์งธ Personal access toKens์ Fine-grained toKens ํด๋ฆญํ๊ณ ์ฐ์ธก์ Generate new toKen ํด๋ฆญ
์ด ํ ํฐ์ ์์ฑํ๊ณ ๋์ค๋ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณต์ฌํด์ ๋ฐ๋ก ๋ณด๊ดํด๋์ด์ผ ํ๋ค.
์ด๋ฏธ ํ ํฐํค๊ฐ ์์ผ๋, ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณต์ฌํด ๋์ง ๋ชปํ์ผ๋ฉด ๊ทธ๋ฅ delete ํ๊ณ ๋ค์ ๋ง๋ค์ด๋ ๋ฌด๋ฐฉํ๋ค.
6-4. name ๋ฐ Expiration์ ๋ณธ์ธ์ ๊ธฐํธ์ ๋ง๊ฒ ์์ฑ ํ์ ์๋์ชฝ์ ๋ฆฌ์คํธ๋ก ๋์ด๊ฐ๋ค.
6-5. ๋ ํผ์งํ ๋ฆฌ ์์ธ์ค๋ฅผ ๋๋ ๋ชจ๋ ๋ ํผ์งํ ๋ฆฌ๋ก ํด์ฃผ์๋ค. ์ค๋ ์ด ํ์์ผ๋ก ํ ํฐํค ์ฌ๋ฐ๊ธ๋ง 3๋ฒ์งธ์ ํ์ฌ ์ค๋ฅ๋ก ์ฅ์ฅ 6์๊ฐ์ ๋งค๋ฌ๋ ธ๊ธฐ ๋๋ฌธ์, ๋ชจ๋ ๊ถํ์ ์ต๋ํ ๋ฌํํ๊ฒ ์งํํ๊ธฐ๋ก ํ๋ค.
๋ํ ๋ฐ์ Permissons์์ 'secret' ์ด ๋ค์ด๊ฐ๋ ํญ๋ชฉ์ ์ ๋ถ 'write and read' ๋ก ์ฒดํฌํ๋ค.
6-6. ์ฒดํฌ ํ์ผ๋ฉด generate toKen ํด๋ฆญํด์ ํค ์์ฑ.
6-7. ํค๋ฅผ ์์ฑํ๊ณ ๋์จ http ๋ฅผ ๋ณต์ฌํด์ ๋๋ ๋ฉ๋ชจ์ฅ์ ๋ณด๊ดํ๋ค.
// ์์
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
์ด๋ฐ ํ ํฐํค๋ฅผ ์์ฑํ์ผ๋ฉด ์ค๋น ๋. ๋ค์ ํฐ๋ฏธ๋๋ก ๊ฐ๋ค.
7. ์ด์ ํ์ธํ ๋ถ๋ถ์ ํ์ฌ git ์ ์ ์ฅ๋์ด์๋ ๋์ user.name , user.email , user.password ์ด๋ค. config --list ๋ก ํ์ธํด๋ณธ๋ค.
% git config --list
// git์ ์ ์ฅํ user.name, user.email, user.password ์ ๋ถ ํ์ธ์ด ๊ฐ๋ฅํ ๋ช
๋ น์ด
// ์ถ๋ ฅ๊ฐ
credential.helper=osxkeychain
init.defaultbranch=main
user.name= ๋ณด์์
user.email= ๋น๋ฐ
user.password= ์์ ์์์ธ ํ ํฐํค๊ฐ ์ฌ๊ธฐ ๋ค์ด๊ฐ๋ค
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=https://github.com/Yooonzero/JS2.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
๋ด ํ ํฐํค์ ์ ์ฅ๋ user.password ๊ฐ ๋ค๋ฅธ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ
% git config global --user.password "์ฌ๊ธฐ์ ์์ฑํ ํค๊ฐ์ ๋ฃ์ด์ค๋ค. (""๋ฅผ ์ด์ฉํด ๋ฌธ์์ด๋ก)"
// ํน์ name ๋๋ email ๋ ๋ค๋ฅด๊ฑฐ๋ ์ ์ฅ์ด ์๋์ด์๋ค๋ฉด,
% git config global --user.name "git ์ฌ์ดํธ์ ๋ก๊ทธ์ธํ๋ ์์ด๋(์ด๋ฉ์ผ ์๋)"
% git config global --user.email "git ์ฌ์ดํธ์ ๋ก๊ทธ์ธํ๋ ์ด๋ฉ์ผ"
// ์์ ๊ฐ์ด ์ ์ฅํด์ค๋ค.
// ์ ์ฅ ํ์ config --list ๋ก ์ ์ฅ์ด ์ ๋์๋์ง ํ์ธ
8. ์ผ์นํจ์ ํ์ธํ๋ฉด, ๋ค์ ํฐ๋ฏธ๋์์ push ์งํํ๋ฉด ์ ์์ ์ผ๋ก ์๋ํ๋๊ฒ ํ์ธ ๊ฐ๋ฅ.
% git push origin main
Username for 'https://github.com': ๋น๋ฐ
Password for 'https://yooonzero@github.com':
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 8 threads
Compressing objects: 100% (11/11), done.
Writing objects: 100% (13/13), 5.72 KiB | 5.72 MiB/s, done.
Total 13 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), done.
To https://github.com/Yooonzero/JS2.git
* [new branch] main -> main
// push ์๋ฃ
9. github์์ branch ํ์ธ.
main branch ๊ฐ ์ ์์ ์ผ๋ก ํธ์ฌ๋๊ฑธ ํ์ธํ๋ค.
๊ทธ ์ธ ์๋ํด ๋ณธ๊ฒ๋ค..
ํค์ฒด์ธ ์ ๊ทผ ์ํธ ์ญ์ ๋ฐ ๋ณ๊ฒฝ
mac ์๋ ์ฌ์ดํธ์ ํค๋ฅผ ์ ์ฅํด๋๋ 'ํค์ฒด์ธ์ ๊ทผ'์ด๋ผ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ด ์๋ค.
// ๋ฐํํ๋ฉด์์ command + spacebar
// ํค์ฒด์ธ ์ ๊ทผ ๊ฒ์
๋ค์ด๊ฐ๋ฉด ์๋์ ๊ฐ์ ์์ด์ฝ๋ค์ด ์์ ์ ์๋ค.
(๋ ๋งจ์ฒ์ ์ค๋ฅ ๋ง๋ฌ์๋๋ github.com์ด ์์๋๋ฐ ํด๊ฒฐ๊ณผ์ ์์ ์ด๋์๊ฐ ์๊ฒผ๋ค.)
์ค๋ ์ด ์ํธ๋ฅผ ์ง์ฐ๋ผ๋ ์ฌ๋๋ค์ด ๋ง์๋๋ฐ ์์ผ๋ก๋ ๊ทธ๋ฅ ๋ง ์ง์๋ฒ๋ฆฌ์ง ๋ง๊ณ , ์๊น์ฒ๋ผ config --list ์์ ๋ด ํ์ฌ ๋น๋ฐ๋ฒํธ์ ์ผ์นํ๋ฉด ๋ด๋ฒ๋ ค ๋์.
์ฌ์ง์ด ์ค๋ ์ด๊ฑฐ๋ฅผ ์ญ์ ๋ฅผ ํ๋ผ๊ณ ํด์ ์์ 2๊ฐ ์์ด์ฝ์ ์ด์ฌํ ์ญ์ ๋ฅผ ๋๋ ์ง๋ง ์ญ์ ์๋จ... ์ ๊ทธ๋ฐ์ง๋ ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ๋ค.
์ถ๊ฐ๋ก ์ ๊ทผ์ ์ด์ vscode ๋ terminal ์์ด๋ ์ ์์ ์ผ๋ก push๊ฐ ๊ฐ๋ฅํ๋ค.
๊ณ์ ์ ๋ณด ์ญ์
// ์ค๋ ์์์ config --list๋ก ๋ฆฌ์คํธ๋ฅผ ๋ณด์์๋ 1๋ฒ์ osxkeychain ์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ณด๊ณ ๋์
// ์คํํ ๋ฐฉ๋ฒ, ๊ฒฐ๊ตญ์๋ ํจ๊ณผ๋ฅผ ๋ณด์ง ๋ชปํ๋ค.
// ์๋ฌด๊ฒ๋ ์คํ์ด ๋์ง ์์์๋, ์ค๋ฅ๊ฐ ๋์์๋ ํ๋ ๊ป๋ค ์ผฐ๋ค๋ฅผ ๋ง์ด ํด์ ๊ธฐ์ต์ด ๋์ง ์๋๋ค.
// ์ฐธ๊ณ ์ผ์ ๋ธ๋ก๊ทธ์ ์ ์ฅํด๋๋ค.
% git credential-osxkeychain erase
host=github.com
protocol=https
// ๊ณ์ ์ญ์ ํ๋ ๋ช
๋ น์ด
์์ฝ ์ ๋ฆฌ
1. ์ ๋งํด์๋ ํฐ๋ฏธ๋ ๋ง๊ณ vscode ์์ push ๋๋ pull ์ ์งํํ์.
๊ฐ์ธ์ ์ธ ์ด์ : ํฐ๋ฏธ๋์ ์ด๊ณ vscode ๋ ์ด๋ฉด ์๋ก ํฐ๋ฏธ๋์ ์๋ค๊ฐ๋ค ํ๋ ๊ณผ์ ์์ ์ค๋ฅ ๋ฐ์ ํ๋ฅ ์ด ๋ ํฐ๊ฒ ๊ฐ๋ค๋ ์๊ฐ.
2. ์ด๋์์ ์งํํ๋ ํ ๊ธํค์ name ๋งํผ์ ์ผ์นํ์ง ํ์คํ ํ์ธ
๋ค๋ฅผ ๊ฒฝ์ฐ : ์ฌ๋ฐ๊ธ ํ ๋ณ๊ฒฝ๋ ํค๊ฐ์ผ๋ก git config ์ธํ
3. ๊ทธ๋ผ์๋ ์ค๋ฅ๊ฐ ๋๋ค๋ฉด ํค์ฒด์ธ ํ์ธํด์ ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ธ ๋ฐ ์์ , ๋๋ ์ญ์ .
์ด๋ ๊ฒ ํ๋ค๋ฉด ์ค๋๊ฐ์ ์ค๋ฅ๋ ์ ๋งํด์ ํด๊ฒฐ์ด ๊ฐ๋ฅํ ๊ฑฐ๋ผ ์๊ฐํ๋ค.
#git #git_push_์ค๋ฅ #403 #permission_to_ #git_config_์ ์ค์์ฑ #config_list_ํ์ธํ์ #mac_ํค์ฒด์ธ #ํ ๊ธํค #ํ์ธํ์
// ์ค๋ ์ค์๋ก git config --'์ฌ๊ธฐ์ global์' ๋นผ๊ณ ์ณค์ ๋ ๋์จ ์ค๋ฅ.
// ๋ง์ ์ต์
๋ช
๋ น์ด๋ฅผ ๋ณด์ฌ์ค์ ์ ์ฅํด ๋๋ ค๊ณ ์์ฑํจ.
// usage = ์ฉ๋ฒ
git config --user.password "๋ณด์์ ๋น๋ฐ"
error: unknown option `user.password'
usage: git config [<options>]
Config file location
--global use global config file
--system use system config file
--local use repository config file
--worktree use per-worktree config file
-f, --file <file> use given config file
--blob <blob-id> read config from given blob object
Action
--get get value: name [value-pattern]
--get-all get all values: key [value-pattern]
--get-regexp get values for regexp: name-regex [value-pattern]
--get-urlmatch get value specific for the URL: section[.var] URL
--replace-all replace all matching variables: name value [value-pattern]
--add add a new variable: name value
--unset remove a variable: name [value-pattern]
--unset-all remove all matches: name [value-pattern]
--rename-section rename section: old-name new-name
--remove-section remove a section: name
-l, --list list all
--fixed-value use string equality when comparing values to 'value-pattern'
-e, --edit open an editor
--get-color find the color configured: slot [default]
--get-colorbool find the color setting: slot [stdout-is-tty]
Type
-t, --type <type> value is given this type
--bool value is "true" or "false"
--int value is decimal number
--bool-or-int value is --bool or --int
--bool-or-str value is --bool or string
--path value is a path (file or directory name)
--expiry-date value is an expiry date
Other
-z, --null terminate values with NUL byte
--name-only show variable names only
--includes respect include directives on lookup
--show-origin show origin of config (file, standard input, blob, command line)
--show-scope show scope of config (worktree, local, global, system, command)
--default <value> with --get, use default value when missing entry
'Git ๊ด๋ จ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Github] : gitignore ์ฌ์ฉํด๋ณด๊ธฐ. (0) | 2023.07.13 |
---|---|
[MarkDown] : github README.md ํ์ผ์ ์์ฑํด๋ณด๊ธฐ. (0) | 2023.06.17 |
[MarkDown] : README.md ํ์ผ ์์ฑ์ ์ํ ๋งํฌ๋ค์ด ๋ฌธ๋ฒ ์ ๋ฆฌ. (0) | 2023.06.17 |
[Git Hub] : Git pull ์ค๋ฅ ๋ฐ ํํธ๊ตฌ๊ฐ ๋ฐ์, rebase ์ค์ ํ๊ธฐ. (0) | 2023.06.08 |
<TIL> / Git ๊ธฐ์ด (Git bash ๋จ์ถํค) .1 (3) | 2023.05.15 |