第一部分:本地
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、创建一个空的仓库:
git init
3、提交本地代码:
git add AndroidManifest.xml //添加单个文件
git add src //添加文件夹
git add . //添加所有文件
4、提交代码
git commit -m "提交内容描述"
5、可在androidstudio中的.gitignore文件中指定忽略文件
6、查看自上次提交后文件修改的情况(是否有修改的文件、或者查看冲突文件):
git status
7、查看文件修改的内容:
git diff //所有提交文件
git diff src/com/example/providertest/MainActivity.java //单个文件修改的内容
8、撤销上次修改(只是撤销本地):
git checkout src/com/example/providertest/MainActivity.java
9、查看提交记录
git log
10、查看分支
git branch //查看本地分支
git branch -a //查看所有分支
git branch -r //查看远程分支
11、创建分支
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
第二部分:远程
1、从远程仓库下载代码到本地
git clone https://github.com/example/test.git
2、将代码推送到远程仓库分支dev,如果dev不存在,则会新建de'v
git push origin dev
3、从远程仓库更新代码
git pull origin master
4、添加远程仓库
git remote add origin https://github.com/example/test.git
5、修改某个远程仓库在本地的简称
git remote rename pb paul //把 pb 改成 paul
6、碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行 git remote rm 命令
git remote rm origin
7、在本地仓库添加一个远程仓库,并把本地仓库master分支跟踪到远程分支
git remote add origin ssh://xxx@192.168.1.32/~/workspace/code_celloct/gittest
git push origin master //可以在远程创建一个新分支并将本地分支代码提交
8、拉取远程分支并创建本地分支
方法一
使用如下命令:
git checkout -b 本地分支名x origin/远程分支名x
使用该方式会在本地新建分支x,并自动切换到该本地分支x。
采用此种方法建立的本地分支会和远程分支建立映射关系。
方式二
使用如下命令:
git fetch origin 远程分支名x:本地分支名x
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。
采用此种方法建立的本地分支不会和远程分支建立映射关系。
9、更新远程分支列表
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
执行git stash (Git 中的分支创建和冲突解决(命令行))
$ git stash
Saved working directory and index state WIP on develop: fd94b13 branch test on develop branch
(3)、远程新建的分支,使用 git branch -a 命令显示不出来,使用下面命令:
git fetch
(4)、远程删除的分支,使用 git branch -a 命令仍然可以显示出来,使用下面命令:
使用命令 git remote show origin,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息。
此时我们可以看到那些远程仓库已经不存在的分支,根据提示,使用 git remote prune origin 命令,
这样就删除了那些远程仓库不存在的分支。
(5)、不小心提交到版本管理的文件,可使用下面的命令删除
git rm -r -n --cached "bin/" //-n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。
git rm -r --cached "bin/" //最终执行命令.
git commit -m" remove bin folder all file out of control" //提交
git push origin master //提交到远程服务器
此时 git status 看到 bin/目录状态变为 untracked
可以修改 .gitignore 文件 添加 bin/ 并提交 .gitignore 文件到远程服务器,这样就可以不对bin目录进行版本管理了。以后需要的时候,只需要注释 .gitignore 里 #bin/ 内容,重新执行 git bin/ ,即可重新纳入版本管理
(6)、撤销pull操作、回退到之前某次commit的版本,
1、运行git 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是你要回退到的引用位置)回退。