以下使用的是 Git-2.18.0-64-bit.exe 客户端,以下经过了试验,所有带$的是git执行语句,紧接着是执行后的结果显示
Git 用户信息配置
$ git config
--global user
.name
"xxx"
$ git config
--global user
.email
"xxx@xxx.com"
从远程仓库获取目录
$ cd test
$ git clone https
://github
.com
/xxxx
/xxxx
.git
$ cd git_demo
$ git status
On branch master
Your branch
is up
-to
-date
with 'origin/master'.
nothing to commit
, working directory clean
修改和增加代码并推送
$ git add
.
$ git commit
-m
"update"
$ git push
分支
$ git branch test
$ git checkout test
Switched to branch
'test'
$ git branch
* test
master
$ echo
"123123" >> hello
.txt
$ git add hello
.txt
$ git commit
-m
"add hello.txt"
$ git push
--set-upstream origin test
$ git checkout master
Switched to branch
'master'
Your branch
is up to date
with 'origin/master'.
$ git merge test
Updating
2d0f8f9..bc9a5ca
Fast
-forward
qwe
| 1 +
1 file changed
, 1 insertion
(+)
create mode
100644 qwe
$ git branch
-d test
Deleted branch wy
(was bc9a5ca
).
$ git push
Total
0 (delta
0), reused
0 (delta
0)
To https
://github
.com
/xxxx
/xxxx
.git
2d0f8f9..bc9a5ca master
-> master
$ git push origin
:test
To https
://github
.com
/xxxx
/xxxx
.git
- [deleted
] test
本地自建一个仓库
$ mkdir demo
$ cd demo
$ git init
$ git remote add origin https
://github
.com
/xxxx
/xxxx
.git
$ vim README
.md
$ git add README
.md
$ git commit
-m
"first commit with README"
$ git push
-u origin master
pull他人提交的代码
#在我们完成了某项功能的修改,需要push的远程的时候,协作者可能已经提交了他们的修改,这时,我们需要先把最新的提交拉取下来,加入我们的修改,再重新提交上去。
$ git push
!
[rejected
] master
-> master
(fetch first
)
error
: failed to push some refs to
'https://github.com/xxxx/xxxx.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
$ git push
冲突处理
$ git pull
remote
: Counting objects
: 5, done
.
remote
: Compressing objects
: 100% (2/2), done
.
remote
: Total
5 (delta
2), reused
5 (delta
2), pack
-reused
0
Unpacking objects
: 100% (5/5), done
.
From github
.com
/xxxx
/xxxx
.git
7d4f14a..e2e17d3 master
-> origin
/master
Auto
-merging file1
CONFLICT
(content
): Merge conflict
in file1
Automatic merge failed
; fix conflicts
and then commit the result
.
$ vim file1
<<<<<<< HEAD
file1
+ add
1
=======
file1
+ del 4
>>>>>>> e2e17d311ec33700e94ce5dd694aa340920deb7c
$ git add file1
$ git commit
-m
"resolve confict in file1"
$ git push
本地分支与远程分支关联
$ git branch
* master
$ git checkout
-b dev
Switched to a new branch
'dev'
$ git pull origin dev
From https
://git
.coding
.net
/wylycool
/database
* branch dev
-> FETCH_HEAD
Already up to date
.
$ git add
.
$ git commit
-m
'123'
[dev fe41cad
] 123
1 file changed
, 0 insertions
(+), 0 deletions
(-)
create mode
100644 123.txt
$ git checkout master
Switched to branch
'master'
Your branch
is up to date
with 'origin/master'.
$ git merge dev
$ git push
$ git push
--set-upstream origin dev
Enumerating objects
: 3, done
.
Counting objects
: 100% (3/3), done
.
Delta compression using up to
2 threads
.
Compressing objects
: 100% (2/2), done
.
Writing objects
: 100% (2/2), 243 bytes | 121.00 KiB
/s
, done
.
Total
2 (delta
1), reused
0 (delta
0)
To https
://git
.coding
.net
/wylycool
/database
.git
87392f6..fe41cad dev
-> dev
Branch
'dev' set up to track remote branch
'dev' from 'origin'.