第一部分:本地
1喂江、配置身份诺祸,這樣在提交的時候就知道是誰提交的:
git config --global user.name "tony"
git config --global user.email "tony@gmail.com"
配置之后可通過下列命令查看是否配置成功:
git config --global user.name
git config --global user.email
2、創(chuàng)建一個空的倉庫:
git init
3杂伟、提交本地代碼:
git add AndroidManifest.xml //添加單個文件
git add src //添加文件夾
git add . //添加所有文件
4移层、提交代碼
git commit -m "提交內(nèi)容描述"
5、可在androidstudio中的.gitignore文件中指定忽略文件
6赫粥、查看自上次提交后文件修改的情況(是否有修改的文件观话、或者查看沖突文件):
git status
7、查看文件修改的內(nèi)容:
git diff //所有提交文件
git diff src/com/example/providertest/MainActivity.java //單個文件修改的內(nèi)容
8越平、撤銷上次修改(只是撤銷本地):
git checkout src/com/example/providertest/MainActivity.java
9频蛔、查看提交記錄
git log
10、查看分支
git branch //查看本地分支
git branch -a //查看所有分支
git branch -r //查看遠(yuǎn)程分支
11秦叛、創(chuàng)建分支
git branch version1.0
12晦溪、切換分支
git checkout version1.0
13、將version1.0分支上的修改合并到master分支
git checkout master
git merge version1.0
14挣跋、刪除version1.0分支
git branch -D version1.0
第二部分:遠(yuǎn)程
1三圆、從遠(yuǎn)程倉庫下載代碼到本地
git clone https://github.com/example/test.git
2、將代碼推送到遠(yuǎn)程倉庫分支dev,如果dev不存在舟肉,則會新建de'v
git push origin dev
3修噪、從遠(yuǎn)程倉庫更新代碼
git pull origin master
4、添加遠(yuǎn)程倉庫
git remote add origin https://github.com/example/test.git
5路媚、修改某個遠(yuǎn)程倉庫在本地的簡稱
git remote rename pb paul //把 pb 改成 paul
6黄琼、碰到遠(yuǎn)端倉庫服務(wù)器遷移,或者原來的克隆鏡像不再使用整慎,又或者某個參與者不再貢獻(xiàn)代碼脏款,那么需要移除對應(yīng)的遠(yuǎn)端倉庫,可以運(yùn)行 git remote rm 命令
git remote rm origin
7院领、在本地倉庫添加一個遠(yuǎn)程倉庫弛矛,并把本地倉庫master分支跟蹤到遠(yuǎn)程分支
git remote add origin ssh://xxx@192.168.1.32/~/workspace/code_celloct/gittest
git push origin master //可以在遠(yuǎn)程創(chuàng)建一個新分支并將本地分支代碼提交
8、拉取遠(yuǎn)程分支并創(chuàng)建本地分支
方法一
使用如下命令:
git checkout -b 本地分支名x origin/遠(yuǎn)程分支名x
使用該方式會在本地新建分支x比然,并自動切換到該本地分支x丈氓。
采用此種方法建立的本地分支會和遠(yuǎn)程分支建立映射關(guān)系。
方式二
使用如下命令:
git fetch origin 遠(yuǎn)程分支名x:本地分支名x
使用該方式會在本地新建分支x强法,但是不會自動切換到該本地分支x万俗,需要手動checkout。
采用此種方法建立的本地分支不會和遠(yuǎn)程分支建立映射關(guān)系饮怯。
9闰歪、更新遠(yuǎn)程分支列表
git remote update origin --prune
10、將某次提交的代碼提交到另一分支master
git checkout master
git cherry-pick c0a5abda8ed500aeb16a120f85d930a3b194fa4c
9蓖墅、問題:
(1)库倘、git pull origin master失敗 ,提示:fatal: refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
(2)、切換分支時
$ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
README.md
Please commit your changes or stash them before you switch branches.
Aborting
執(zhí)行g(shù)it stash (Git 中的分支創(chuàng)建和沖突解決(命令行))
$ git stash
Saved working directory and index state WIP on develop: fd94b13 branch test on develop branch
(3)论矾、遠(yuǎn)程新建的分支教翩,使用 git branch -a 命令顯示不出來,使用下面命令:
git fetch
(4)贪壳、遠(yuǎn)程刪除的分支饱亿,使用 git branch -a 命令仍然可以顯示出來,使用下面命令:
使用命令 git remote show origin闰靴,可以查看remote地址彪笼,遠(yuǎn)程分支,還有本地分支與之相對應(yīng)關(guān)系等信息蚂且。
此時我們可以看到那些遠(yuǎn)程倉庫已經(jīng)不存在的分支配猫,根據(jù)提示,使用 git remote prune origin 命令杏死,
這樣就刪除了那些遠(yuǎn)程倉庫不存在的分支泵肄。
(5)佳遣、不小心提交到版本管理的文件,可使用下面的命令刪除
git rm -r -n --cached "bin/" //-n:加上這個參數(shù)凡伊,執(zhí)行命令時,是不會刪除任何文件窒舟,而是展示此命令要刪除的文件列表預(yù)覽系忙。
git rm -r --cached "bin/" //最終執(zhí)行命令.
git commit -m" remove bin folder all file out of control" //提交
git push origin master //提交到遠(yuǎn)程服務(wù)器
此時 git status 看到 bin/目錄狀態(tài)變?yōu)?untracked
可以修改 .gitignore 文件 添加 bin/ 并提交 .gitignore 文件到遠(yuǎn)程服務(wù)器,這樣就可以不對bin目錄進(jìn)行版本管理了。以后需要的時候,只需要注釋 .gitignore 里 #bin/ 內(nèi)容,重新執(zhí)行 git bin/ ,即可重新納入版本管理
(6)惠豺、撤銷pull操作银还、回退到之前某次commit的版本,
1洁墙、運(yùn)行g(shù)it reflog命令查看你的歷史變更記錄蛹疯,如下(最新的在上面):
G:\Projects\Class\ibaby>git reflog
c32a3d1 (HEAD -> dev_homePage) HEAD@{0}: commit: <E9><80><9A><E8><AE><AF><E5><BD><95><E4><BF><AE><E6><94><B9>
75b07c5 HEAD@{1}: pull origin dev_homePage: Fast-forward
e8ea8b2 HEAD@{2}: checkout: moving from test to dev_homePage
c584b2b (origin/test, test) HEAD@{3}: checkout: moving from dev_homePage to test
e8ea8b2 HEAD@{4}: checkout: moving from test to dev_homePage
2、然后用git reset --hard HEAD@{n}热监,(n是你要回退到的引用位置)回退捺弦。