一、現有的Git 項目,要爲其貢獻代碼,怎麼關聯。
1、用git clone <url> 方式(比方式2,要好,都自動關聯好了)
git clone <url>
git remote#一般可以看到origin,自動關聯好遠程主機了,方式2沒有
git branch -a#看到本地自帶一個master分支,遠程的都在
git remote show origin#可以看到比較詳細的信息,如分支
2、下載壓縮包方式
download一個.zip項目壓縮包
解壓成一個文件夾
git bash 中 cd 到文件根目錄下
git init //初始化文件夾,使之成爲一個本地倉庫
git remote add origin https://github.com/laisxIsMe/APP_HMT//爲本地倉庫匹配一個遠程倉庫
/**
注意上命令中的https://github.com/laisxIsMe/APP_HMT 是自己Fork項目原本主人的項目後的鏈接,不是原項目本身的鏈接
比如原項目地址是https://github.com/1136535305/APP_HMT,我在網頁fork後就會有https://github.com/laisxIsMe/APP_HMT
*/
二、push格式,pull格式
git push <遠程主機名> <本地分支名>:<遠程分支名> //推到遠程
git pull <遠程主機名> <遠程分支名>:<本地分支名> //拉到本地
三、詳細的分支信息
$ git log --graph --pretty=oneline --abbrev-commit
* 7825a50 merge with no-ff
|\
| * 6224937 add merge
|/
* 59bc1cb conflict fixed
引用阮一峯老師的圖片,以幫助問題四的理解
四、未保存add 的撤銷
情景:導入一個model後,把項目搞得亂亂的,想恢復到沒導入的時候。
你可能發現版本回退中的 git reset --hard HEAD^ 回退後還是殘留着你導入的model。用git status可以看到你的那個文件夾
這是因爲你沒add他到暫存區(沒有追蹤你的這些個文件),git 無法幫你回退。
用如下命令可以回覆到原來最後一次commit 的樣子。
git clean -df #清除到沒有add的文件
git checkout . #注意後面的空格加一點,清除整個項目的,沒有add 的修改
五、git auto-merge失敗後的提示更改
Step 1: From your project repository, check out a new branch and test the changes.
git checkout -b 1136535305-branch1 master
git pull https://github.com/1136535305/APP_HMT.git branch1
Step 2: Merge the changes and update on GitHub.
git checkout master
git merge --no-ff 1136535305-branch1
git push origin master
注1:--no-ff 表示no FastForward。詳看廖雪峯老師的分支管理策略:
注2:git merge遇到一些合併問題需要人工解決。用到的一些知識可以看下:
http://www.cnblogs.com/sinojelly/archive/2011/08/07/2130172.html
六、習慣性的操作,以保證項目主在github上合併時可以自動合併,利己利人嘛
開始寫代碼前
1、查看下被fork項目有沒有更新,有更新在github網站上發起pull request,把自己github上的項目更到最新
2、用git pull 更新自己本地的項目
提交代碼前
1、看下被fork項目有沒有更新,有的話重複上面兩步,以保證自己新寫代碼可以與github上代碼融合
2、再git push
===============================================
base fork a ; head fork b
從b更新內容到a
git option --help 可以查看相關命令的解釋,雖然是英文版的
git命令大全
http://blog.csdn.net/dengsilinming/article/details/8000622
參考(阮一峯):
http://www.ruanyifeng.com/blog/2014/06/git_remote.html
參考(廖雪峯)