Git快速入门

初始化项目

直接clone已经有的项目

git clone https://github.com/hangox/git-use-demo.git

或者初始化本地项目

移动到项目的地址

cd /Users/hangox/Desktop/AndroidWorkspace/GitUseDemo

再敲入

git init

这个时候敲入git status 就会看到

On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .gitignore
    .idea/
    app/
    build.gradle
    gradle.properties
    gradle/
    gradlew
    gradlew.bat
    settings.gradle

nothing added to commit but untracked files present (use "git add" to track)

这是时候就会表示成功了

设置代码提交者信息

如果不设置代码提交者信息当然也可以提交,但是谁不希望提交上去的代码有个有个牛逼的名字呢😈

设置名字:

git config user.name "NiuBi"

设置邮箱:(出问题了人家可以找到你😂)

git config user.email "hangox.liang@gmail.com"

如果你想所有项目都是应用这个名字和邮箱只需要加上参数-- global
比如:

git config --global user.name "NiuBi"
git config user.email "hangox.liang@gmail.com"

要想查看现在的config信息可以这样

git config --list

你就会看到

user.name=47
user.email=liang.hanguang93@gmail.com
core.autocrlf=input
core.excludesfile=/Users/hangox/.gitignore_global
core.ignorecase=false
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
user.name=NiuBi

如果你发现了两个user.name和user.email ,这是其中一个是global的,一个是项目的而已

当然git config 还有很多可以设置的,包括合并工具什么的,自己挖掘吧!

编写.gitignore

什么是.gitignore

.gitignore 就好像它的名字一样

告诉 git忽略一些不需要的文件

.gitignore 编写规则

项目文件结构是这样的

.
├── GitUseDemo.iml
├── app
│   ├── app.iml
│   ├── build
│   ├── build.gradle
│   ├── libs
│   ├── proguard-rules.pro
│   └── src
├── build
│   └── generated
├── build.gradle
├── gradle
│   └── wrapper
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
└── settings.gradle

我想要忽略build文件夹,.iml 结尾文件和local.properties

#忽略build 文件夹
/build
#忽略local.properties 文件
local.properties
#忽略.xml 结尾的文件,使用正则
*.iml
#不忽略GitUseDemo.xml,这里只是为了演示,其实应该忽略的
!GitUseDemo.iml
#gradle 缓存文件,不需要提交
.gradle
#idea 的配置文件,不需要提交
.idea


这个时候我们敲入git status

On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .gitignore
    GitUseDemo.iml
    app/
    build.gradle
    gradle.properties
    gradle/
    gradlew
    gradlew.bat
    settings.gradle

nothing added to commit but untracked files present (use "git add" to track)

可以看到不需要的东西都被忽略了

添加需要提交的文件到暂存区

添加当前文件夹所有文件

git add .

移除追踪的文件

##去掉--cached就是同时删除文件
git rm --cached build.gradle

使用简单的匹配添加文件

添加后缀为.gradle的文件

git add *.gradle

提交

简单的提交方法

git commit -m 'first commit'

如果你写的东西比较长,可以这样

git commit 

这样将会出现一个vim 编辑器来编写,像这样

推送到远端

以上我们做的都这是发生在本地(这也是为什么Git快的原因了),如果需要和小伙伴们合作的话,就需要推送到远端了。

如果你是clone下来的可以跳过以下这一步了

  • 添加远端
# 添加远端,origin 只是一个名字而已,只是默认都是叫这个
git remote add origin https://github.com/hangox/git-use-demo.git

# 查看远端信息
git remote -v

  • 更新以下本地的代码(每次同步之前建议这样做,虽然我老是忘记/(ㄒoㄒ)/~~)
# pull 其实是包含了两步操作,从remote 中fetch(拿来)代码,和当前分支(也就是master) 
# merge(合并),如果你们公司使用的是rebase的话,就不能这样干了。但是大部分情况下都是
# 使用merge的
git pull origin master
  • 上传代码
# git push <remote-name> <remote-branch-name>
git push origin master

等待片刻,代码就上传完毕,你就可以和小伙伴们愉快的玩耍了O(∩_∩)O~~

参考