一、遠程沒有分支
1.本地新建一個文件夾Testbranch,初始化本地倉庫:git init ;
2.與遠程倉庫建立連接:git remote add origin 倉庫地址 ;
3.建立本地分支Testbranch(分支名):git branch Testbranch 。 或者 git checkout -b 分支名 (直接創建分支並切換到分支) ;
4.切換到新建分支Testbranch(分支名):git checkout Testbranch;
5.將需要提交的代碼復制到Testbranch文件夾中,
6.git add ...;git commit -m "...";
7.提交到Testbranch 分支:git push origin Testbranch 。
二、遠程有分支
1.新建文件夾,克隆分支代碼到本地
git clone git@github.com:raymarine/smarthub.raywebui.git -b mobileui(分支名 )
|
2.直接在拉下來的文件夾mobileui下改代碼;
3.git add ...;git commit -m "...";
4.提交到mobileui分支:git push origin 分支名。
日常修改代碼提交:
1.git pull origin 主/分支名 (pull拉取最新代碼並且自動融合本地代碼,最好先看看本地有沒有沒提交的)或者 git fetch 主/分支名(fetch拉取最新代碼並且不會自動融合本地代碼);
2.修改代碼,git status 查看修改哪些代碼;
3.git add ...;git commit -m "...";
4.提交到主/分支:git push origin 分支名。
三、遠程沒有倉庫
1.在github創建倉庫,然后就會有主分支;
2.本地新建一個文件夾,初始化本地倉庫:git init ;
3.與遠程倉庫建立連接:git remote add origin 倉庫地址 ;
4.如果要將代碼直接提交到主分支,則直接執行git add ...;git commit -m "...";git push origin master;
5.如果要新建分支,將代碼提交到分支,則走一中的3,然后再往下走。
四、兩個倉庫之間進行切換
1.git remote -v show (查看當前所在的遠程倉庫;)
2.git remote remove origin ( 移除當前遠程倉庫連接;)
3.git remote add origin 遠程倉庫地址 (和另一個遠程倉庫建立連接)
4.git add ...;git commit -m "...";
5.git push origin 分支名
五、
先保證當前的已經同步了,如果沒有同步請使用git add 同步一下,否則使用git rm -r --cached指令會無法通過。
1.git rm --cached 要忽略的文件
(如: git rm --cahced build/*
, 如當前目錄的內容全部是不需要的, 那么你可以使用最最簡單的命令搞定git rm -r --cached .
)
2.然后在 .gitignore 文件中加入該忽略的文件(如:*.o*.info)
3.git add .
4.git commit -m " commet for commit ....."
5.git push
六、1、項目有一個問題#66需要修改,創建一個處理#66問題的分支A,在#66修改代碼並且有提交,現在還有修改沒有提交。
突然來了一個緊急bug需要處理,於是需要創建一個#88的分支B,但分支A的代碼還沒測試不能提交,則可以通過git stash/git stash push貯藏修改分支,
等分支B緊急bug修改完畢后,回到分支A,git stash list 可以查看所有貯藏,
git stash apply/git stash apply 貯藏名 進行恢復。
參考 https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6
如果在修改分支B緊急bug期間,別人有提交代碼,提交的時候有沖突,如果出現“Merge branch ‘master’ of …”這條信息,使用git pull --rebase命令,如果沒有沖突,則會直接合並,如果存在沖突,手動解決沖突即可,不會再產生那條多余的信息。
2、提交指定文件
1 git status 查看倉庫狀態
2 git add src/components/文件名 添加需要提交的文件名(加路徑--參考git status 打印出來的文件路徑)
3 git stash -u -k 忽略其他文件,把現修改的隱藏起來,這樣提交的時候就不會提交未被add的文件
4 git commit -m "哪里做了修改可寫入..."
5 git pull 拉取合並(提交的時候有沖突,如果出現“Merge branch ‘master’ of …”這條信息,則先使用git pull --rebase origin master命令,如果沒有沖突,則會直接合並,如果存在沖突,手動解決沖突即可,不會再產生那條多余的信息,再執行git pull )
6 git push 推送到遠程倉庫
7 git stash pop 恢復之前忽略的文件
七、回退到指定版本
git diff
什么參數都不加,默認比較工作區暫存區的差異- git diff 文件路徑
git diff --cached [<path>...]
比較暫存區與最新本地版本庫(本地庫中最近一次commit的內容)git diff HEAD [<path>...]
比較工作區與最新本地版本庫。如果HEAD指向的是master分支,那么HEAD還可以換成master
git reset ** fileName
-
1.git reset --mixed:此為默認方式,不帶任何參數的git reset,這種方式,它回退到某個版本,只保留源碼,回退commit和index信息
-
2.git reset --soft:回退到某個版本,只回退了commit的信息,不會恢復到index file一級。如果還要提交,直接commit即可
-
3.git reset --hard 版本號 徹底回退到某個版本,本地的源碼也會變成為上一個版本的內容