git基本用法備忘以及idea侈贷,pycharm連接github

1.GIT基本使用方法備忘(摘自廖雪峰)

一、幾個專用名詞的譯名如下

Workspace:工作區(qū)
Index / Stage:暫存區(qū)
Repository:倉庫區(qū)(或本地倉庫)
Remote:遠程倉庫
給電腦授權(quán)
ssh-keygen -t rsa -b 4096 -C my_email_address
vim /c/Users/wangyao/.ssh/id_rsa.pub

二等脂、新建代碼庫

在當(dāng)前目錄新建一個Git代碼庫
$ git init

新建一個目錄俏蛮,將其初始化為Git代碼庫
$ git init [project-name]

下載一個項目和它的整個代碼歷史
$ git clone [url]

三、配置

Git的設(shè)置文件為.gitconfig上遥,它可以在用戶主目錄下(全局配置)搏屑,也可以在項目目錄下(項目配置)。

顯示當(dāng)前的Git配置
$ git config --list

編輯Git配置文件
$ git config -e [--global]

設(shè)置提交代碼時的用戶信息

$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"

四粉楚、增加/刪除文件

添加指定文件到暫存區(qū)
$ git add [file1] [file2] ...

添加指定目錄到暫存區(qū)辣恋,包括子目錄
$ git add [dir]

添加當(dāng)前目錄的所有文件到暫存區(qū)
$ git add .

刪除工作區(qū)文件亮垫,并且將這次刪除放入暫存區(qū)
$ git rm [file1] [file2] ...

停止追蹤指定文件,但該文件會保留在工作區(qū)
$ git rm --cached [file]

改名文件伟骨,并且將這個改名放入暫存區(qū)
$ git mv [file-original] [file-renamed]

五饮潦、代碼提交

提交暫存區(qū)到倉庫區(qū)
$ git commit -m [message]

提交暫存區(qū)的指定文件到倉庫區(qū)
$ git commit [file1] [file2] ... -m [message]

提交工作區(qū)自上次commit之后的變化,直接到倉庫區(qū)
$ git commit -a

提交時顯示所有diff信息
$ git commit -v

使用一次新的commit底靠,替代上一次提交
如果代碼沒有任何新變化害晦,則用來改寫上一次commit的提交信息
$ git commit --amend -m [message]

重做上一次commit特铝,并包括指定文件的新變化
$ git commit --amend [file1] [file2] ...

六暑中、分支

列出所有本地分支
$ git branch

列出所有遠程分支
$ git branch -r

列出所有本地分支和遠程分支
$ git branch -a

新建一個分支,但依然停留在當(dāng)前分支
$ git branch [branch-name]

新建一個分支鲫剿,并切換到該分支
$ git checkout -b [branch]

新建一個分支鳄逾,指向指定commit
$ git branch [branch] [commit]

新建一個分支,與指定的遠程分支建立追蹤關(guān)系
$ git branch --track [branch] [remote-branch]

切換到指定分支灵莲,并更新工作區(qū)
$ git checkout [branch-name]

建立追蹤關(guān)系雕凹,在現(xiàn)有分支與指定的遠程分支之間
$ git branch --set-upstream [branch] [remote-branch]

合并指定分支到當(dāng)前分支
$ git merge [branch]

選擇一個commit,合并進當(dāng)前分支
$ git cherry-pick [commit]

刪除分支
$ git branch -d [branch-name]

刪除遠程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

七政冻、標簽

列出所有tag
$ git tag

新建一個tag在當(dāng)前commit
$ git tag [tag]

新建一個tag在指定commit
$ git tag [tag] [commit]

查看tag信息
$ git show [tag]

提交指定tag
$ git push [remote] [tag]

提交所有tag
$ git push [remote] --tags

新建一個分支枚抵,指向某個tag
$ git checkout -b [branch] [tag]

八、查看信息

顯示有變更的文件
$ git status

顯示當(dāng)前分支的版本歷史
$ git log

顯示commit歷史明场,以及每次commit發(fā)生變更的文件
$ git log --stat

顯示某個文件的版本歷史汽摹,包括文件改名
$ git log --follow [file]
$ git whatchanged [file]

顯示指定文件相關(guān)的每一次diff
$ git log -p [file]

顯示指定文件是什么人在什么時間修改過
$ git blame [file]

顯示暫存區(qū)和工作區(qū)的差異
$ git diff

顯示暫存區(qū)和上一個commit的差異
$ git diff --cached [file]

顯示工作區(qū)與當(dāng)前分支最新commit之間的差異
$ git diff HEAD

顯示兩次提交之間的差異
$ git diff [first-branch]...[second-branch]

顯示某次提交的元數(shù)據(jù)和內(nèi)容變化
$ git show [commit]

顯示某次提交發(fā)生變化的文件
$ git show --name-only [commit]

顯示某次提交時逼泣,某個文件的內(nèi)容
$ git show [commit]:[filename]

顯示當(dāng)前分支的最近幾次提交
$ git reflog

九拉庶、遠程同步

下載遠程倉庫的所有變動
$ git fetch [remote]

顯示所有遠程倉庫
$ git remote -v

顯示某個遠程倉庫的信息
$ git remote show [remote]

增加一個新的遠程倉庫氏仗,并命名
$ git remote add [shortname] [url]

取回遠程倉庫的變化皆尔,并與本地分支合并
$ git pull [remote] [branch]

上傳本地指定分支到遠程倉庫
$ git push [remote] [branch]

強行推送當(dāng)前分支到遠程倉庫谣旁,即使有沖突
$ git push [remote] --force

推送所有分支到遠程倉庫
$ git push [remote] --all

刪除已指定的遠程倉庫
git remote rm origin

十榄审、撤銷

恢復(fù)暫存區(qū)的指定文件到工作區(qū)
$ git checkout [file]

恢復(fù)某個commit的指定文件到工作區(qū)
$ git checkout [commit] [file]

恢復(fù)上一個commit的所有文件到工作區(qū)
$ git checkout .

重置暫存區(qū)的指定文件,與上一次commit保持一致昔头,但工作區(qū)不變
$ git reset [file]

重置暫存區(qū)與工作區(qū)影兽,與上一次commit保持一致
$ git reset --hard

重置當(dāng)前分支的指針為指定commit峻堰,同時重置暫存區(qū),但工作區(qū)不變
$ git reset [commit]

重置當(dāng)前分支的HEAD為指定commit旦万,同時重置暫存區(qū)和工作區(qū)镶蹋,與指定commit一致
$ git reset --hard [commit]

重置當(dāng)前HEAD為指定commit贺归,但保持暫存區(qū)和工作區(qū)不變
$ git reset --keep [commit]

新建一個commit,用來撤銷指定commit
后者的所有變化都將被前者抵消秋冰,并且應(yīng)用到當(dāng)前分支
$ git revert [commit]

十一丹莲、其他

生成一個可供發(fā)布的壓縮包
$ git archive

十二尸诽、一般流程:

cd 到準備放置代碼的文件夾下
git clone [url] 把代碼弄到本地
cd 到clone下的文件夾中
git status 查看狀態(tài)
git log 顯示當(dāng)前分支的版本歷史

修改代碼以后
git status 應(yīng)該能看到 紅色的modified: XXXX.py 被修改的代碼
git add . add所有內(nèi)容
git status 應(yīng)該能看到性含,綠色的modified: XXXX.py
git commit -m "修改的內(nèi)容" 用于注釋做了什么修改
git push origin master 或者 git push origin develop 正式推上線

回退

如果不小心改了一些不需要改的地方商蕴,還未add/commit提交,想要把代碼恢復(fù)到之前的狀態(tài)苛谷。
git checkout . #撤銷全部文件的修改
git checkout [filename] # 撤銷對指定文件的修改

使用 git reset 回退項目版本
可以回退到任意已經(jīng)提交過的版本腹殿。已 add / commit 但未 push 的文件也適用。
git reset --hard [commit-hashcode]
一般用法是先用 git log 查看具體commit的哈希值刻炒,然后 reset 到那個版本自沧。

合并develop分支到master

1.查看本地和遠程分支

$ git branch -a

  • developer
    master
    remotes/origin/developer
    remotes/origin/master

2.切換到本的developer分支

$ git checkout -b developer origin/developer

如果developer分支已經(jīng)存在拇厢,執(zhí)行下面這步

$ git checkout developer

如查當(dāng)前使用的就是developer分支旺嬉,則這步不用執(zhí)行厨埋。

3.把遠程的developer分支拉取到本地,保證是最新的developer分支

$ git pull

4.切換到master分支

$ git checkout master

5.確保存master分支也是最新的

$ git pull

6.執(zhí)行合并的關(guān)鍵代碼雨效,此時執(zhí)行結(jié)果時將本地的developer合并到本地master分支

$ git merge developer

7.將合并的本地master分支推送到遠程master

$ git push origin master

偶爾出現(xiàn)異郴展辏可以用遠程倉庫強制覆蓋本地
git fetch --all && git reset --hard origin/master && git pull

十三唉地、其他需要注意的:

如果其他人某些地方做了修改,
git pull 把其他人修改過的部分更新一下
git branch -a 先看一下有哪些分支
然后選擇分支push 比如更新到develop分支:git push origin develop
push的時候如果代碼有更新极颓,直接git pull更新代碼再push

git commit -a 相當(dāng)于 git add . 加上git commit兩步操作菠隆,通常還是建議分開操作骇径。

上傳代碼如果報錯
error: src refspec master does not match any.
error: failed to push some refs to
git commit -m "xxx" 時候需要用戶的郵箱和用戶名者春,而新裝的git還沒有提交用戶郵箱和用戶名就會報錯钱烟。

*** Please tell me who you are.

Run

 git config --global user.email "you@example.com"

 git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

git pull時出現(xiàn)Automatic merge failed; fix conflicts and then commit the result.
說明和別人同時修改了某行校仑,起了沖突迄沫。
可以執(zhí)行
git reset --hard HEAD
廢棄這次修改羊瘩。
然后用git checkout退回到?jīng)]改過的樣子尘吗。
git pull浇坐。

有時候git pull時出現(xiàn)Your local changes to the following files would be overwritten by merge.
可能是有人在本地直接修改了代碼文件(沒有通過git提交),
最簡單的方法擒贸,如果本地修改不重要
放棄本地修改介劫,直接覆蓋

git reset --hard
git pull

解決方法二:git checkout還原然后再pull(就是覆蓋更新的意思)
解決方法三:先add 再commit 最后pull 就會在本地合并你的代碼案淋,最后檢查沒問題再push

提示:您有偏離的分支踢京,需要指定如何調(diào)和它們。您可以在執(zhí)行下一次
提示:pull 操作之前執(zhí)行下面一條命令來抑制本消息:
提示:
提示:  git config pull.rebase false  # 合并(缺省策略)
提示:  git config pull.rebase true   # 變基
提示:  git config pull.ff only       # 僅快進
提示:
提示:您可以將 "git config" 替換為 "git config --global" 以便為所有倉庫設(shè)置
提示:缺省的配置項黔帕。您也可以在每次執(zhí)行 pull 命令時添加 --rebase蹬屹、--no-rebase白华,
提示:或者 --ff-only 參數(shù)覆蓋缺省設(shè)置弧腥。

2.IDEA連接github

2.1 IDEA連接github
https://www.cnblogs.com/jinjiyese153/p/6796668.html
2.2 IDEA導(dǎo)入項目
File->New


復(fù)制http地址



填入地址導(dǎo)入項目


3.pycharm 連接github

https://www.cnblogs.com/lidyan/p/6538877.html

References:

git 中文文檔: https://docs.gitlab.com.cn/
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铡买,一起剝皮案震驚了整個濱河市奇钞,隨后出現(xiàn)的幾起案子漂坏,更是在濱河造成了極大的恐慌,老刑警劉巖谷徙,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件完慧,死亡現(xiàn)場離奇詭異剩失,居然都是意外死亡赴叹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摊鸡,“玉大人免猾,你說我怎么就攤上這事』袢” “怎么了锨苏?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵伞租,是天一觀的道長。 經(jīng)常有香客問我裸弦,道長,這世上最難降的妖魔是什么晕城? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任广辰,我火速辦了婚禮主之,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘几睛。我一直安慰自己所森,他們只是感情好夯接,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布盔几。 她就那樣靜靜地躺著,像睡著了一般上鞠。 火紅的嫁衣襯著肌膚如雪芯丧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天谴咸,我揣著相機與錄音岭佳,去河邊找鬼驼唱。 笑死驹暑,一個胖子當(dāng)著我的面吹牛辨赐,可吹牛的內(nèi)容都是我干的掀序。 我是一名探鬼主播惭婿,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼财饥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沾瓦?” 一聲冷哼從身側(cè)響起贯莺,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤缕探,失蹤者是張志新(化名)和其女友劉穎还蹲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲸沮,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年最易,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片藻懒。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡嬉荆,死狀恐怖酷含,靈堂內(nèi)的尸體忽然破棺而出汪茧,到底是詐尸還是另有隱情舱污,我是刑警寧澤弥虐,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布霜瘪,位于F島的核電站,受9級特大地震影響捻撑,放射性物質(zhì)發(fā)生泄漏惜互。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一描验、第九天 我趴在偏房一處隱蔽的房頂上張望坑鱼。 院中可真熱鬧,春花似錦鲁沥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狭园。三九已至,卻和暖如春唱矛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背管闷。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工渐北, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赃蛛。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓呕臂,卻偏偏與公主長得像肪跋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谜洽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容