Git的使用
本文为学习Git教程后的个人小结,比较简洁,适合有一定Git基础的人;如果想要从0开始学Git,本人强烈推荐廖雪峰老师的教程,教程请阅读 Git教程。
如有问题及意见,敬请提出。
Git基础命令相关
1.初始化本地仓库:git init
2.查看仓库状态:git status
3.将修改后的某文件预添加到仓库:git add xx.py
4.将修改后的所有文件预添加到仓库:git add .
5.将预添加区域的所有文件添加到仓库:git commit -m "关于提交内容阐述"
Git版本相关
1.查看提交(版本)记录和版本号:git log
2.查看所有版本记录(包括回退的):git reflog
3.版本回退:git reset --hard 版本号
4.修改文件后,没有保存到缓存区,不想保存也懒得再删,直接回到原版本:git checkout -- xxx文件
5.修改文件并git add 到缓存区后,不想要上次的修改了,回到修改前的版本:
先git reset HEAD xxx文件 回到add之前的状态,再 git checkout -- xxx文件。
6.对比工作区和某个版本某文件的不同:git diff HEAD -- xxx文件。其中,--表示HEAD中的文件,++表示工作区文件。
7.对比当前版本和某个版本之间的不同:git diff HEAD HEAD^ -- xxx文件。HEAD^表示版本号,可替换;--表示前面版本里的文件,++表示后面版本里的文件,顺序不同,-+对应不同;
8.已经保存至缓存区了,在工作区删除一个文件后想要恢复:git checkout -- xxx文件;
9.已经保存至缓存区了,在工作区删除一个文件后,想要在版本区中也删除:git rm xxx文件,就会将删除保存在缓存区了,可以使用第5步取消删除,可以使用commit提交删除;
Git下线相关
1.开发某个新功能,开发到一半,原来的某个功能出问题了,需要下线:停止现在开发的功能,下线出问题的功能:git stash;(将正在开发的代码存在一个地方,避免波及)下线出问题功能,提交;git stash pop;(将正在开发的代码从那个地方拿出来,继续开发);
git stash;--->修改--->git add .;--->git commit -m 'xxx';--->出现冲突:自动合并/手动解决;
Git分支相关
1..在当前分支上创建分支:git branch 分支名 eg: git branch dev
2.查看分支:git branch
3.切换到某分支:git checkout 分支名 eg: git checkout dev
4.切换到master后合并二级分支:git merge 二级分支名 eg: git merge dev
5.删除分支:git branch -d 分支名 eg: git branch -d dev
6.自己本地,dev分支添加一行代码,commit了,切换到master分支同一个文件添加一行代码,commit了,这个时候 git merge dev会报错合并冲突:打开冲突文件,手动合并解决,再add该文件,commit;
7.保存/隐藏开发现场:git stash;查看开发现场:git stash list;切换回继续开发:git stash pop;
8.出现bug:首先保存工作现场,再切换到bug所在分支,创建一个临时分支,解决bug后与bug分支合并,合并使用no-ff保存临时分支记录,删除临时分支,切换到工作分支,回到工作现场;
Git推送GitHub相关
1.将本地代码推送到GitHub上已创建的仓库:1.git remote add origin https://github.com/username/xxx.git --->2.将本地代码进行commit和它之前的步骤--->3.git push origin master
2.将GitHub上代码克隆到本地并进行编写:1.git clone https://github.com/username/xxx.git ---> 2.进入文件夹 ---> 3.默认只下载master分支,先创建并切换dev分支,git pull origin dev;
注意:git pull origin dev; == git fetch origin dev;+ git merge origin/dev;
Git协同开发相关
1.保持分支整洁:git fetch origin dev + git rebase origin/dev
在公司开发了一部分代码,保存了但没有推送远程库,回家开发另外一部分代码,保存并推送,第二天回公司直接git pull origin dev的话会出现分叉,这个时候就可以用git fetch origin dev + git rebase origin/dev 来保持代码的整洁性;
2.协同开发:开发的每个人都应有一个分支,比如yifchan,lwkun;两个人提交分支,后提交分支的那个,要先pull,才能继续合并;
Git其他
1.发现开源项目bug之后:先fork到自己仓库,pull到本地,进行修改,push到自己仓库,然后pull request 提意见,给开源项目负责人审核;
2.避免重复输入密码:1.相当于url自带账户名和密码。2.用ssh方法,生成公钥后放到GitHub上面去;
3.推送代码时忽略文件:1. vim -gitignore,在文件中写忽略哪些文件,就可以了。2.在创建仓库时在readme处选中python ignore;通过tag创建版本;
创建github仓库时注意事项
1.创建的仓库最好是英文;
2.可以在github上创建分支,再pull下来;也可以在本地建立的分支,再push推送到github上。
3.将仓库克隆到本地之后,要先创建一个test文件,然后git add .; git commit -m 'init repositrry';然后才能'实例化'master,创建其他分支。
推送本地项目到github/codealiyun
1.git init
2.git remote add origin https://github.com/username/xxx.git
3.git pull origin master
4.git add .
5.git commit -m "xxx"
6.git push origin master