- git安装后基本信息配置
- 常用命令
- 1. git init
- 2. git add
- 3. git commit -m "输入提交信息"
- 4.git status
- 5. git diff
- 6. git checkout
- 7. git reset
- 8. git log
- 9. git branch
- 10. git branch dev
- 11. git checkout dev
- 12. git merge dev
- 13. git branch -d dev
- 14. git clone [远程库地址]
- 15. git push origin master
- 16. git fetch origin master
- 17. git pull origin master
- 18. git branch -r
- 19.git branch -m [原来的分支名] [想修改的分支名]
- 20. git branch -r -d [远程分支名]
- 本地创建库并提交到远程库上
git安装后基本信息配置
设置用户名:
git config --global user.name "xxxx"
设置用户名邮箱:
git config --global user.email "xxxx"
- 查看设置信息:
git config --list
注:1.直接输入git config --global user.name
或git config --global user.email
后回车也可以查看name和email的信息;
2.git config --global
:表示这台机器上所有的git仓库都会使用这个配置,当然,也可以对某个仓库指定的不同的用户名和邮箱。
常用命令
以新建项目shopping为例:
1. git init
git init
:进入到shopping项目的目录下,创建本地仓库
创建完成后会在根目录下生产一个隐藏的.git文件夹,用来记录所有本地的git操作
2. git add
git add
:把想要提交的代码先添加到暂存区中
在src目录的com.example.shopping包下有两个类:Food.java 和 Book.java
- 如果想添加 Food.java 这单个文件,则输入命令:
- 如果要添加某个目录 buy ,则输入命令:
- 一个一个的添加当然很麻烦,在 add 后面加一个小点儿,就能添加所有的文件了:
- 如果想添加 Food.java 这单个文件,则输入命令:
3. git commit -m "输入提交信息"
git commit -m "输入提交信息"
:将 add 后的文件提交到仓库中去- -m 参数用来加上提交的描述信息,没有描述信息的提交是不合规则的。
4.git status
git status
:查看自上一次提交后文件的修改情况
可以看到 Food.java 已经发生了改变
5. git diff
git diff
:查看所有文件的变更内容
- 可以在git diff后面加想要查看的改变文件的内容,例如,只想看前面改变的 Food.java 的内容,可以用命令:
git diff src/com/example/shopping/Food.java
:
其中,减号表示删除的部分,加号表示新添加的部分,可以看出,删除了j变量,增加了k变量和一条print输出语句。
6. git checkout
git checkout src/com/example/shopping/Food.java
:撤销修改
- 只要代码还未提交,所有修改的内容都是可以撤销的。执行了上述命令后,Food.java 文件的一切修改都会被撤销到上一次提交后的状态。之后再用status命令查看,可以看到当前项目中已经没有任何可提交的状态了。但是,
git checkout
只适用于还没有执行过 add 命令的文件,如果某个文件已经被添加过了,就不能再撤销其更改的内容。
7. git reset
git reset
:取消已被添加(add)的文件
- 可以发现对 Food.java 执行 reset 命令,然后用 status 命令查看,Food.java 重新变回了未添加状态。因此,如果要撤销已添加的文件,可以先使用 reset 命令,再进行 checkout 命令。
git reset --hard commitedId
:回滚,回到历史提交记录中的某个版本,commitedId 是提交版本的id号
8. git log
git log
:查看历史提交信息
- 若只想查看其中一条记录,可以在 git log 命令后面指定某条记录的id,并加上 -1,表示只想看到一行记录,例如只查看第三条记录:
git log f4fa045aa34164aa09ecc2d8f976cad8721b3215 -1
。 - 若想查看这条记录具体修改了什么内容,可以再在命令后面加上 -p 参数:
git log f4fa045aa34164aa09ecc2d8f976cad8721b3215 -1 -p
9. git branch
git branch
:查看当前的版本库中有哪些分支
- 因为shopping项目还没有创建过任何分支,所有当前只有一个 master 分支,也就是项目存放到仓库中必有的一条主分支。
10. git branch dev
git branch dev
:创建分支- 在branch命令后面写上要创建分支的名字,可以创建一个新的分支,例如,下面创建一个名为 dev 的分支,再用 branch 命令查看所有分支情况:
其中,master 分支前面的 * 表示当前我们的代码是停留在 master 分支上的,也即是,当前我们是在 master 分支上开发项目的
11. git checkout dev
git checkout dev
:切换分支到刚刚新建的 dev 分支上
- 可以看到,已经把代码切换到 dev 分支上去了。其中,在 dev 分支上修改并提交的代码不会影响到 master 分支,同样,在 master 分支上修改并提交的代码也不会影响到 dev 分支。
- 因此,如果在 dev 分支上修复了原来 master 上的一个bug,在 master 分支上这个bug依然是存在的,这时,将修改的代码一行行复制到 master 分支并不太好,此时,可以用 merge 命令来完成合并操作。
12. git merge dev
git merge dev:
合并代码git checkout master
git merge dev
使用这两行命令,就可以将 dev 分支上修改并提交的内容合并到 master 分支上了。最后,当不再需要 dev 分支时,就可以将 dev 分支删除掉了。
13. git branch -d dev
git branch -d dev
:删除 dev 分支
14. git clone [远程库地址]
git clone https://gitee.com/zoucaoxin/spring.git
:将远程库 https://gitee.com/zoucaoxin/spring.git 地址上的代码下载到本地
15. git push origin master
git push origin master
:将本地修改的内容同步到远程库上去- 其中,origin 指定的是远程库的 git 地址,master 部分指定的是同步到哪一个分支上,这句命令就表示:将本地代码同步到 https://gitee.com/zoucaoxin/spring.git 这个地址所在库的 master 分支上去。如果要将修改的代码提交到另一个 dev2 分支上去,则可输入命令:
git push origin dev2
。
16. git fetch origin master
git fetch origin master
:将远程库上的修改内容同步到本地- 执行 fecth 命令后,会将远程库上的代码同步到本地,但同步下来的代码并不会合并到任何分支上去,而是会存放到 origin/master 分支上,这时,可以再调用
git merge origin/master
命令将 origin/master 分支上的修改合并到主分支上去。
17. git pull origin master
git pull origin master
:从远程库上拉取最新代码并合并到本地- 这句命令相当于将 fetch 和 merge 命令合在一起执行。
18. git branch -r
git branch -r
:查看远程分支
19.git branch -m [原来的分支名] [想修改的分支名]
git branch -m [old_branch_name] [new_branch_name]
:修改本地分支名
20. git branch -r -d [远程分支名]
git branch -r -d [origin/branch-name]
:删除远程分支- 如果要修改远程分支的名字,可以先修改本地分支名,再删除远程分支,最后推送本地分支。
本地创建库并提交到远程库上
本地创建库并提交到远程库上步骤:
git init
:创建本地仓库;git remote add origin [远程库地址]
:将本地库与远程库想关联;(eg:git remote add origin https://git.oschina.net/zoucaoxin/myapplication.git)git pull origin master
:合并代码;git add .
:将文件添加到仓库中去;git commit -m "提交信息"
:将文件从暂存区提交到仓库;git push -u origin master
:第一次提交到远程库时要加 -u ,以后再往远程库提交时,直接使用命令:git push origin master
即可。一些问题:
1
多半是远程库中的README.md文件没有添加到本地库中,通过命令 git pull –rebase origin master 合并到远程库中的README.md文件;
2.
Windows中的换行符为CRLF,而在Linux下的换行符为LF,所以在执行 add . 时出现如上提示,通过命令 git config –global core autocrlf false (禁用自动转换)可解决;