git install and config
install Linux:
1
shell 界面输入 ``sudo apt-get install git-core`` 回车输入密码
Windows:下载
1
2
3
4
5[git-for-windows](https://github.com/git-for-windows/git/releases/tag/v2.6.3.windows.1)
[github-windows](https://github-windows.s3.amazonaws.com/GitHubSetup.exe)
安装就不用说了,上面两个的区别自己去琢磨吧!Mac:terminal : brew install git
完成上面的步骤就算安装好环境了,你离git已经很近了,下面是怎么配置。
1 | #配置全局用户名和邮箱 |
creat local repository connect remote
首先你要在本地创建一个仓库,也就是repository(creat a local repository):1
2
3
4
5#cd 到你要建仓库的文件夹,建的仓库会在该文件夹下生成一个和仓库同名的文件夹
#所以你不必自己建立一个和仓库同名的文件夹
#假如你的仓库都要放在D:/GitHub/下
cd D:/GitHub
git init mygit
就是这么简单仓库就建好了,你会发现在D:/GitHub
下生成了一个mygit文件夹,同时文件夹内有一个.git
隐藏文件。那么现在D:/GitHub/mygit/
就是你的本地仓库了。如果你不想让你的代码发布到网络的话,在这里你完全可以使用git的所有功能。不过我们要做的还是想要他发布到网上,那就是GitHub了。
建立一个远程仓库(creat a remote repository)
在git.hub.com创建一个新的仓库,一定要是空的。当然你要先登录你的帐号,如果连账号都搞不定我想你可以Ctrl+W
了。当然了你可以百度–。
完成以后你的远程仓库也就建好了。不过你还需要将刚才建立的本地仓库与远程的仓库建立连接。那么你就需要你的远程仓库地址
连接支持HTTPs和SSH两种协议,推荐使用SSH连接。
我的连接是git@github.com:ygcaicn/mygit.git, (这用的是SSH连接地址)
本地仓库与远程仓库连接( connect a remote repository )
#打开git shell
cd D:/github/mygit
git remote add origin git@github.com:ygcaicn/mygit.git
Quick setup — if you’ve done this kind of thing before
…or create a new repository on the command line
echo "# test" >> README.md git init git add README.md git commit -m "first commit" git remote add origin git@github.com:ygcaicn/test.git git push -u origin master
…or push an existing repository from the command line
git remote add origin
git@github.com:ygcaicn/test.git git push -u origin master
…or import code from another repository
You can initialize this repository with code from a Subversion, Mercurial, or TFS project.
上面是建立完仓库官方给出的Quick setup.
上传本地仓库 Update
建立远程连接更新本地的改动到云端
git add -A
git commit -m "first commit"
git push -u origin master //由于第一次push加-u
后来的push不需要加-u参数。到此你已经可以简单的使用git了。不过git远不只这么多东西,它没这么简单。
下面介绍一些Github常用的skill
creat remote repository clone to local
将代码仓库clone到本地,其实就是将代码复制到你的机器里,并交由Git来管理:
git clone git@github.com:ygcaicn/mygit.git
git常用的命令:git-scm官方文档
关于git-scm是什么和git的区别,请按下Ctrl
点击
git add
:把要提交的代码添加进来,可以认为到一个缓冲中[重要] 官方文档
提交文件test.c:
git add test.c
提交目录test :
git add test
添加删除后的所有文件:
git add .
或者:
~~git add -A~~
添加所有文件(和上面的区别我也不知道)
#一定要是大A强调一下,Shell下的所有操作都是区分大小写的
#不过Windows下还有区别,因为~~万恶的Windows~~是不区分文件的大小写的
git add -A
上面的add添加操作相当于把文件写入到了一个仓库的缓存区,但是还没有真正的写入到仓库的磁盘中
git commit
本地提交commit:add完成后,真正的代码提交[重要] 官方文档git commit -m “commit” // -m 描述信息,不能为空
本地提交就是将缓存区的文件改动写入仓库的磁盘。
git status: 查看上次提交后文件修改的列表
git status
git diff:查看文件修改的内容,-号代表删除部分,+号代表添加部分
git diff TestB.java // 查看TestB.java修改的内容
checkout:撤销未提交的修改(未执行add操作)
git checkout TestB.java // 撤销TestB.java的修改
reset:取消add状态
git reset HEAD TestB.java // 取消TestB.java的add状态
log:查看提交记录(内容包含提交id,提交人,提交日期,描述信息)
git log // 所有记录 git log xxxxx(id) -1 // 查看当前id的记录,-1表示一行记录 git log xxxxx(id) -1 -p // 查看当前id提交记录的修改
+ `.gitignore`文件:
git会检查是否存在该文件,存在就读取该文件内容,将配置文件或者目录排除在版本之外,文件和目录可以使用“\*”通配符。可以手动创建在文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
#Editplus
*.bak
TestA.c // 排除该文件
testDir // 排除该目录
git 分支
分支:可以在现有代码上拉出一个分支,使得代码可以在主干与分支同时开发,并且代码之间互相不会影响。常见使用环境,就是每次版本发布,已发布的可以拉出一个分支,剩下的功能继续在主干开发,如果发布版本有问题,只用修改分支,最终将代码合并到主干。
- 分支命令:
1 | git branch -a // 查看所有分支,master主干,分支前有*号,表示当前处于那个分支 |
远程版本库
比如有远程版本库(仓库),https://github.com/FreeSunny/RefreashTabView.git
git clone https://github.com/FreeSunny/RefreashTabView.git // 下载到本地
远程库命令:
pussh:将代码修改和提交同步到远程库 [重要]
#origin 指定远程版本库的 Git 地址,master 指定同步到哪一个分支 git push origin master
fetch:远程库的修改同步到本地, 不会将代码合并到任何分支,会存放到一个origin/master分支上
#注释同 git fetch origin master
diff:查看远程库修改内容
#注意有一个斜线,就是fetch同步后放置的位 git diff origin/master
merge:将origin/master分支修改的内容合并到主分支
#注意斜线 git merge origin/master
pull:fetch + merge,拉取并且合并[重要]
#没有斜线 git pull origin master
Git常用速查 gitbub网址
知易行难,say easy than do, 下面就来一个小小的实例,必须要有git账号,这个步骤就不用say了吧!
创建远程库
a. 点击+号下的New repository 创建一个远程库,命名为GitOperate,
b. 版本库类型可以public或者private,程序员都有开源的心,那就public。
c. 还可以勾选Initialize this repository with a README,
d. 接下来可以选择添加.gitignore文件,.gitignore文件有很多类型可以选,
比如 Android,Android项目下的bin这些文件一般都不需要提交。
选择遵循的协议。eg:Apache License 2.0, 这个可以自己去查查每种的意思
e. 点击create,远程版本库就创建完成了,远程版本库的地址为
https://github.com/FreeSunny/GitOperate.git。
之后跳转到README.md,该文件主要是对项目的描述。
远程库克隆到本地
a. 本地创建一个GitOperate文件夹
b. 远程库地址为https://github.com/FreeSunny/GitOperate.git,
cd进入GitOperate,输入 *git clone https://github.com/FreeSunny/GitOperate.git*
c. 完成后可以在GitOperater文件下的GitOperate文件夹下看到README.md文件(两层文件夹了)
d. 将第二个目录下的所有文件全部复制到上一层目录中,这样就只有第一层目录添加到版本控制中。
操作命令为(cp -r GitOperate/ .)
提交代码
git add .// 将提交的代码添加进来,这里指README.md
git commit -m “add readme” // 本地提交
git push origin master // 同步到远程库