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.