查看當前項目ip等信息:cat .git/config
編輯外網ip:vim .git/config
修改外網ip:點擊 'I’修改,?‘esc’ 退出編輯, ?‘:wq’ 保存并退出
npm install -g cnpm --registry=https://registry.npm.taobao.org?安裝淘寶鏡像
一 、本地項目推送到空遠程倉庫
master分支:
Git init
Git add .
Git commit -m ‘第一次提交’
Git?remote add origin https://github.com/xxx.git(倉庫地址)
Git push -u origin master (首次推送)(下次git push origin master)
方法二:
1、切換遠程倉庫地址:
方式一:修改遠程倉庫地址
【git remote set-url origin URL】 更換遠程倉庫地址,URL為新地址。
方式二:先刪除遠程倉庫地址,然后再添加
【git remote rm origin】 刪除現有遠程倉庫
【git remote add origin url】添加新遠程倉庫
2、【git remote -v 】查看遠程倉庫的地址
錯誤提示:
更改倉庫地址時報錯??fatal: remote origin already exists.?
執行:
? ? 1、先輸入$ git remote rm origin
????2、再輸入$ git remote add origin http://倉庫地址? ?就不會報錯了!
????3、如果輸入$ git remote rm origin 還是報錯的話,error: Could not remove config section 'remote.origin'. 我們需要修改gitconfig文件的內容
??? 4、找到你的github的安裝路徑,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc
??? 5、找到一個名為gitconfig的文件,打開它把里面的[remote "origin"]那一行刪掉就好了!
git branch --set-upstream 本地關聯遠程分支
最近使用git pull的時候多次碰見下面的情況:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> release
其實,輸出的提示信息說的還是比較明白的。
使用git在本地新建一個分支后,需要做遠程分支關聯。如果沒有關聯,git會在下面的操作中提示你顯示的添加關聯。
關聯目的是在執行git pull, git push操作時就不需要指定對應的遠程分支,你只要沒有顯示指定,git pull的時候,就會提示你。
解決方法就是按照提示添加一下唄:
git branch --set-upstream-to=origin/remote_branch? your_branch
其中,origin/remote_branch是你本地分支對應的遠程分支;your_branch是你當前的本地分支。
1、failed to push some refs?to?https://github.com/guyibang/TEST2.git(在創建倉庫的時候自動創建了readme,而本地沒有)
執行:git pull --rebase origin master? 后再推送
2、還有就是你上線有文件需要進行運程本地連接
git branch --set-upstream-to=origin/<branch> ?master
3、報錯本地分支與遠程分支強制合并:
git pull origin master --allow-unrelated-histories? (強制合并)
二 、 本地分支提交到遠程已有分支步驟:https://blog.csdn.net/huangjw_806/article/details/78297851
git branch 分支名
例如:git branch dev,這條命令是基于當前分支創建的本地分支,假設當前分支是master(遠程分支),則是基于master分支創建的本地分支dev。
切換到本地分支
git checkout 分支名
例如:git checkout dev,這條命令表示從當前master分支切換到dev分支。
創建本地分支并切換
git checkout -b 分支名
例如:git checkout -b dev,這條命令把創建本地分支和切換到該分支的功能結合起來了,即基于當前分支master創建本地分支dev并切換到該分支下。
提交本地分支到遠程倉庫
git push origin 本地分支名
例如:git push origin dev,這條命令表示把本地dev分支提交到遠程倉庫,即創建了遠程分支dev。
注:要想和其他人分享某個本地分支,你需要把它推送到一個你擁有寫權限的遠程倉庫。你創建的本地分支不會因為你的寫入操作而被自動同步到你引入的遠程服務器上,你需要明確地執行推送分支的操作。換句話說,對于無意分享的分支,你盡管保留為私人分支好了,而只推送那些協同工作要用到的特性分支。
新建本地分支與遠程分支關聯
git branch –set-upstream 本地新建分支名 origin/遠程分支名(有時會提示如下兩個操作:git fetch ? git push -u )
例如:git branch –set-upstream dev origin/dev,把本地dev分支和遠程dev分支相關聯。
注:本地新建分支, push到遠程服務器上之后,使用git pull或者git pull 拉取或提交數據時會報錯,必須使用命令:git pull origin dev(指定遠程分支);如果想直接使用git pull或git push拉去提交數據就必須創建本地分支與遠程分支的關聯。
三、 其他命令
查看狀態 :git status ? ? ??
查看分支/主枝狀態路徑: gitk --all &? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
查看所在分支:git branch ? ?
?查看遠程與本地所以分支:git branch -a ??
拉取代碼到本地倉庫:git pull ? ? ? ? ?
提交代碼到遠程倉庫:git push ? ? ? ?
克隆指定分支名代碼:git clone -b (指定分支名)(git地址) ?
刪除本地分支:git?branch -D dev ??
刪除遠程分支:git push (項目名project) --delete dev
git回滾到任意版本:https://blog.csdn.net/QH_JAVA/article/details/77979622
git如何回滾遠程倉庫https://www.cnblogs.com/iloveyou-sky/p/6534409.html
先顯示提交的log:git log -3(最近3條)
回滾到指定的版本: git reset --hard e377f60e28c8b84158
會滾到之前一個版本:git reset --hard HEAD
撤銷前一次commit: git revert HEAD
強推:git push origin (分支名字) -f (因為本地比遠程低一個版本,所以使用強推覆蓋遠程)
四、將本地新項目提交到git上:https://www.cnblogs.com/sdcs/p/8270029.html
1、第一個方法:
1)現在git clone?https://XXX
2)將項目拷貝到下載的項目中,在提交。
2、第二個方法:
1)git init ??通過命令git init把這個文件夾變成Git可管理的倉庫
2)git add .
3)git commit -m ’test’
4)git remote add origin?https://XXX? ? git和本地倉庫進行關聯
5)git push -u origin master?把本地庫的所有內容推送到遠程倉庫,如果倉庫
? ? git push origin master? 由于新建的遠程倉庫是空的,所以要加上-u這個參數,等遠程倉庫里面有了內容之后,去掉-u
6)可能存在報錯現象:在創建遠程倉庫的時候,如果你勾選了Initialize this repository with a README(就是創建倉庫的時候自動給你創建一個README文件),那么你將本地倉庫內容推送到遠程倉庫的時候就會報一個to???https://XXX的錯,這是由于你新創建的那個倉庫里面的README文件不在本地倉庫目錄中,這時我們可以通過以下命令先將內容合并以下:git pull --rebase origin master,這時你再push就能成功了。
五,git 命令放棄本地修改操作
一,
未使用 git add 緩存代碼時。
可以使用?git checkout -- filepathname?(比如:?git checkout -- readme.md,不要忘記中間的 “--” ,不寫就成了檢出分支了!!)。放棄所有的文件修改可以使用?git checkout .??命令。
此命令用來放棄掉所有還沒有加入到緩存區(就是 git add 命令)的修改:內容修改與整個文件刪除。但是此命令不會刪除掉剛新建的文件。因為剛新建的文件還沒已有加入到 git 的管理系統中。所以對于git是未知的。自己手動刪除就好了。
二,
已經使用了? git add 緩存了代碼。
可以使用?git reset HEAD filepathname?(比如:?git reset HEAD readme.md)來放棄指定文件的緩存,放棄所以的緩存可以使用?git reset HEAD .?命令。
此命令用來清除 git? 對于文件修改的緩存。相當于撤銷 git add 命令所在的工作。在使用本命令后,本地的修改并不會消失,而是回到了如(一)所示的狀態。繼續用(一)中的操作,就可以放棄本地的修改。
三,
已經用 git commit? 提交了代碼。
可以使用?git reset --hard HEAD^?來回退到上一次commit的狀態。此命令可以用來回退到任意版本:git reset --hard? commitid?
你可以使用?git log?命令來查看git的提交歷史。git log 的輸出如下,之一這里可以看到第一行就是 commitid:
commit?cf0d692e982d8e372a07aaa6901c395eec73e356?(HEAD -> master)
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 14:07:14 2017 +0800
多余的空行
commit?14aa4d7ad4ac6fba59b4b8261d32e478e8cc99ff
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 14:06:44 2017 +0800
正常的代碼
commit da3a95c84b6a92934ee30b6728e258bcda75f276
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 13:58:12 2017 +0800
qbf
commit 267466352079296520320991a75321485224d6c6
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 13:40:09 2017 +0800
qbf
可以看出現在的狀態在 commitid 為?cf0d692e982d8e372a07aaa6901c395eec73e356 的提交上(有 HEAD -> master 標記)。
git重置遠程分支到指定版本
分支操作者:
git checkout test-release
這個test-release就是需要被配置的分支,它對應的遠程就是origin/test-release
git reset --hard xxx
這是將當前branch重置到xxx的commit點, --hard是重置是丟棄xxx之前的所有代碼變化
git push --force
其他分支使用者:
git checkout test-release
git reset --hard origin/test-release
這步就是其他同事把自己本地test-release重置到與origin/test-release一致,注意--hard參數會丟棄超過origin的所有commit,如果不想丟棄可以用 --mixed 或 --soft 具體用哪個自行研究吧