一:创建本地仓库
git init
二:克隆远程仓库到本地
git clone https://github.com/ReactiveX/RxJava.git
或者
git clone git@github.com:ReactiveX/RxJava.git
三:将本地已有仓库添加到远程仓库
git remote add origin https://github.com/ReactiveX/RxJava.git(远程仓库地址)
git push -u origin master(远程分支)
四:创建本地分支及切换分支
1、创建并切换到该分支
git checkout -b test(本地分支名) origin/master(远程分支)
2、切换分支
git checkout test(分支名)
3、查看本地分支列表
git branch
4、查看远程分支列表
git branch -r
5、查看本地+远程分支
git branch -a
五:常用命令及使用顺序
1、pull代码:每次提交前为避免冲突,应该先pull下代码,将远程代码pull到本地,如果有冲突解决冲突
git pull
2、如果不能正常pull下代码,说明远程和本地同时修改了同一个文件,导致冲突,如图:这时需要使用git stash
将本地修改隐藏起来,然后再git pull
代码,pull完代码,再将自己的代码显示出来git stash pop
3、查看状态:看是否有冲突
git status
如果看到如下情况就是有冲突
解决冲突后,使用git reset HEAD <file>... 或 git add <file>...
将冲突的文件移出冲突区。
4、提交代码
git add <file>...
git commit -m"此处填写本次提交说明"
5、再次pull代码防止其他人在你操作过程中又提代码
6、push代码到远程分支
git push 或 git push origin master(远程分支名)
7、查看单个文件修改记录
看一个文件的修改历史列表
git log --pretty=oneline 要查看的文件名(路径)
看具体某一次修改
git show e0f58602910eaf657ded0a7640c1166425c0c5e1
8、远程仓库版本回退方法(慎用!!!!回滚前最好不让其他人在提交代码)
查看要回退的版本的commit id:
git reflog
回退到要回退的版本
git reset --hard obfafd(要回退commitid)
把本地分支推到远程
git push -f
其他成员如果在这个时候没有提交代码,其他成员可以进行如下操作:
隐藏自己的修改
git stash
用远程分支覆盖自己的本地分支(如果并没有pull下要回滚代码,怎不需要执行此步,直接pull代码即可)
git reset --hard origin/master(远程分支)
再显示自己的修改代码,继续开发即可
git stash pop
如果在你回滚的前已有人提交代码了,这个时候需要那个人备份自己的分支,再执行拉取覆盖本地,再把备份自己的修改节点合并过来。
六:git仓库迁移
1、克隆源码库
git clone --bare 源码地址
git clone --bare https://github.com/xxx/xxx.git
2、进入项目目录,并以镜像推送的方式上传代码到远程服务器
git push --mirror 目标地址
cd xxx.git
git push --mirror https://github.com/aaa/xxx.git