首页 > 代码库 > git体验

git体验

技术分享

 

(1)git初始化配置
#配置用户名
git config --global user.name "azcode"
#配置邮箱
git config --global user.email "azcode_cn@outlook.com"
#配置gui编码
git config --global gui.encoding utf-8
#配置status编码
git config --global core.quotepath off
#windows配置
git config --global core.ignorecase false
#忽略换行符
git config --global core.autocrlf false
#生成ssh key pair
ssh-keygen -t rsa -C "azocde_cn@outlook.com"
ssh key pair
cat ~/.ssh/id_rsa.pub
#将生成的key pair复制到gitlab的配置信息中

 

(2)将项目上传到远程仓库
#进入到项目目录并创建README.md文件
touch README.md
vim README.md
#创建.gitignore文件设定忽略规则
touch .gitignore
vim .gitignore

*.class

#package file
*.war
*.ear

#kidff3 ignore
*.orig

#maven ignore
target/

#eclipse ignore
.settings/
.project
.classpath

#idea ignore
.idea/
/idea/
*.ipr
*.iml
*.iws

#temp file ignore
*.log
*.cache
*.diff
*.patch
*.tmp

#system ignore
.DS_store
Thumbs.db

 

#初始化git仓库
git init
Initialized empty Git repository in C:/workspace/freshman-ssh/.git/

#查看git状态
git status
On branch master

Initial commit

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

.gitignore
README.md
pom.xml
src/

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

#将修改信息添加到仓库
git add .

#再次查看状态
git status
On branch master

Initial commit

Changes to be committed:
(use "git rm --cached <file>..." to unstage)

new file: .gitignore
new file: README.md
new file: pom.xml
new file: src/main/java/com/iflytek/ssh/conf/AppConfig.java
new file: src/main/java/com/iflytek/ssh/conf/AppInitializer.java
new file: src/main/java/com/iflytek/ssh/conf/HibernateConfiguration.java
new file: src/main/java/com/iflytek/ssh/controller/AppController.java
new file: src/main/java/com/iflytek/ssh/dao/AbstractDao.java
new file: src/main/java/com/iflytek/ssh/dao/EmployeeDao.java
new file: src/main/java/com/iflytek/ssh/dao/EmployeeDaoImpl.java
new file: src/main/java/com/iflytek/ssh/model/Employee.java
new file: src/main/java/com/iflytek/ssh/service/EmployeeService.java
new file: src/main/java/com/iflytek/ssh/service/EmployeeServiceImpl.java
new file: src/main/resources/application.properties
new file: src/main/resources/log4j.properties
new file: src/main/resources/message.properties
new file: src/main/webapp/WEB-INF/views/allemployees.jsp
new file: src/main/webapp/WEB-INF/views/registration.jsp
new file: src/main/webapp/WEB-INF/views/success.jsp

#确认提交并添加注释
git commit -am ‘first commit init project‘

#添加远程仓库地址
git remote add origin git@git.coding.net:qjtang/freshman-ssh.git

#查看分支信息
git branch

#将仓库提交到远程的master分支
git push -u origin master
The authenticity of host ‘git.coding.net (116.211.78.90)‘ can‘t be established.
RSA key fingerprint is SHA256:jok3FH7q5LJ6qvE7iPNehBgXRw51ErE77S0Dn+Vg/Ik.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘git.coding.net,116.211.78.90‘ (RSA) to the list of known hosts.
To git.coding.net:qjtang/freshman-ssh.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to ‘git@git.coding.net:qjtang/freshman-ssh.git‘
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., ‘git pull ...‘) before pushing again.
hint: See the ‘Note about fast-forwards‘ in ‘git push --help‘ for details.

#需要先从远程仓库拉取
git pull
warning: no common commits
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From git.coding.net:qjtang/freshman-ssh
* [new branch] master -> origin/master
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

git branch --set-upstream-to=origin/<branch> master

#再次提交提示远程仓库比本地仓库版本新
git push -u origin master
To git.coding.net:qjtang/freshman-ssh.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘git@git.coding.net:qjtang/freshman-ssh.git‘
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: ‘git pull ...‘) before pushing again.
hint: See the ‘Note about fast-forwards‘ in ‘git push --help‘ for details.

#直接覆盖远程仓库强制提交
git push -u -f origin master
Counting objects: 36, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (27/27), done.
Writing objects: 100% (36/36), 11.12 KiB | 0 bytes/s, done.
Total 36 (delta 2), reused 0 (delta 0)
To git.coding.net:qjtang/freshman-ssh.git
+ 49234d0...4fc84f9 master -> master (forced update)
Branch master set up to track remote branch master from origin.

#查看所有分支信息
git branch -r
origin/master

#查看当前分支信息
git branch
* master

#新建一个v1.0的分支并切换到该分支,从master分支检出该分支
git checkout -b v1.0 origin/master
Switched to a new branch ‘v1.0‘
Branch v1.0 set up to track remote branch master from origin.

#查看当前分支信息
git branch
master
* v1.0

#将新建分支提交到远程仓库
git push origin HEAD -u
Total 0 (delta 0), reused 0 (delta 0)
To git.coding.net:qjtang/freshman-ssh.git
* [new branch] HEAD -> v1.0
Branch v1.0 set up to track remote branch v1.0 from origin.

git体验